我想知道是否可以为每个克隆的 git存储库设置服务器用户和组。
例如,如果存储库位于目录中:
/home/example/domains/example.com/public_html/
用户将示例,该组也将是示例。但是当我通过终端克隆或拉(以root身份登录)时,文件将保存为 root:root 而不是示例:示例
每次添加新文件时,无需 chown 即可防止这种情况发生的最佳方法。
那会发生什么?
cd /home/example/
的目录,您可以通过键入ls -all
看到该目录中的所有文件都归用户示例和组示例所有。/home/example/domains/example.com/public_html/
创建了一个。一个简单但手动的解决方案就是。
chown -R example:example /home/example/domains/example.com/public_html/
只有我搜索更具动态性的东西,它还必须与所有其他git命令一起使用,例如pull,因为当你从存储库中提取新提交到本地时,它将归root:root所有。 / p>
答案 0 :(得分:0)
切换到'示例'用户使用sudo -u
。您希望在正在运行的任何钩子git pull
中执行此操作。如果git pull
没有运行任何挂钩,建议您阅读this guide on deploying using git。
Git跟踪文件持久化的可执行位,而不再是。
一般情况下,你应该避免以root身份运行这样的事情:没有理由不作为专用的git用户(或示例用户)推送,并且有许多理由不以root身份推送。