git:保留群组所有者

git:保留群组所有者

我使用一个中央 HUB,如果主分支有更改,它会自动部署到生产性 Web 服务器。现在,安装程序在文件权限问题中运行。

如果我执行推送,我希望保留根字典继承的组所有者。同时,我希望拥有以下权限:

  • 只有一个用户:“deploy_git”
  • 文件应属于“www-data”组
  • 对于字典,文件权限应设置为 750;对于其他所有文件,文件权限应设置为 640。

已经创建了执行自动部署的 post-receive。它按预期工作。但我无法保存词典的组所有者。u+s 不保留组所有者,g+s 不起作用,因为该组没有词典的写权限。

我已经充电两天了,但没有解决方案。:-(

答案1

这就是 POSIX ACL 的作用所在:

setfacl -m g:www-data:rX -R /some/directory
setfacl -m d:g:www-data:rX -R /some/directory

手册页setfacl会告诉您具体发生了什么,但本质上第一个命令只是为组设置了 ACL,www-data使其能够读取所有文件,并读取并执行 下的所有目录/some/directory。第二个命令为 下的新文件和目录设置“默认值” /some/directory,以便以后创建的任何文件也将正确继承 ACL。

相关内容