Git 挂钩无法更改文件权限
Git hook can't change file permission
我有一个 post-receive 挂钩,它执行一个 shell 脚本来更改一些文件的权限,但这并没有发生,因为我得到了错误
chown: changing ownership of 'example': Operation not permitted
有些文件显示该错误,有些文件只是默默地失败。
如何在 git 挂钩(特别是 post-接收挂钩)中更改文件权限?
PS: Git 挂钩的用户是 git
,我正在尝试的文件的 owner/group 也是更改权限。我正在使用 chown 来加强这些文件的所有者和更改组。
结论
我确实接受并回答了我最初提出的问题,但我决定不在 git 挂钩中这样做,而是在我经常手动执行的另一个脚本中这样做。
除了这不是一个好主意(如评论中所述)之外,您可以使用文件上的 SUID 或 SGID 位来执行此操作(post-receive
本身或某些外部文件,运行 来自 post-receive
).
SUID is defined as giving temporary permissions to a user to run a program/file with the permissions of the file owner rather that the user who runs it.
您可以阅读如何设置此位 here。
我有一个 post-receive 挂钩,它执行一个 shell 脚本来更改一些文件的权限,但这并没有发生,因为我得到了错误
chown: changing ownership of 'example': Operation not permitted
有些文件显示该错误,有些文件只是默默地失败。
如何在 git 挂钩(特别是 post-接收挂钩)中更改文件权限?
PS: Git 挂钩的用户是 git
,我正在尝试的文件的 owner/group 也是更改权限。我正在使用 chown 来加强这些文件的所有者和更改组。
结论
我确实接受并回答了我最初提出的问题,但我决定不在 git 挂钩中这样做,而是在我经常手动执行的另一个脚本中这样做。
除了这不是一个好主意(如评论中所述)之外,您可以使用文件上的 SUID 或 SGID 位来执行此操作(post-receive
本身或某些外部文件,运行 来自 post-receive
).
SUID is defined as giving temporary permissions to a user to run a program/file with the permissions of the file owner rather that the user who runs it.
您可以阅读如何设置此位 here。