一年多来,我一直遇到GIT和目录/文件权限的麻烦。我有一个中央存储库,多个开发人员使用ssh(源设置为ssh:// example / git / repository)向其推送代码。我已按如下方式设置存储库:
1)我在中央存储库中的配置文件: [核心] repositoryformatversion = 0 filemode = true bare = true sharedrepository = 0660
2)所有存储库目录权限设置为770(rwxrwx ---) 3)./objects/XX和./objects/info中的所有文件都设置为440(r - r -----) 4)所有其他文件设置为660(rw-rw ----) 5)所有权设置为root:group_name
(请注意,这来自此主题中顶部响应中的推荐设置: 制作git push尊重权限?)
所有访问用户都是组“group_name”的成员。
问题是如果user1推送到存储库,则某些文件的文件所有权设置为user1:user1 - 表示该组已更改。一旦发生这种情况,其他任何用户都无法从存储库中推送(或拉出),因为他们无权再从存储库中的所需文件进行读取,写入或执行。
我已经阅读了有关Stack Overflow问题的所有线程,以及网络上的其他任何地方,但我仍然遇到同样的问题。
问题是,我不确定这个问题是GIT还是UNIX之一,我不知道如何修复它。当用户推送到存储库时,如何阻止更改组?