我在 Ubuntu 服务器上有一个远程裸 Git 存储库,其中的文件归用户my_project
和组所有my_project
,并设置了相应的权限。所有提交者都在组中my_project
。
当有人提交然后从用户的任何 Ubuntu 笔记本电脑my_user
通过 SSH 推送到服务器时,远程存储库中的某些文件会被创建(更新?),因此它们现在属于用户和组my_user
。
当然,当其他人想要提交时,他现在无法提交,因为他没有写权限。我可以将权限设置为 777,但这不是最好的选择。
有什么方法可以解决这个问题,同时保持受限的写权限?
答案1
SUID 和 SGID 位会对您有所帮助吗?我使用类似的机制允许 bzr 组的成员将文件提交到 bazaar 中央存储库,同时仍保留可访问的权限。
drwsrwsr-x 3 bzr bzr 4.0K 2010-04-15 17:58 bzr
设置 sudo chmod ug+s /home/bzr
/etc/group 包含
bzr:x:1012:bzr,tom,<and a whole bunch of other usernames>
这对我们来说似乎效果很好,允许 bzr 组中的用户将文件提交到中央存储库。
出于明显的安全原因,设置模式 777 可能并不理想。
如果我没抓到重点,那就糟了。
答案2
查看core.sharedRepository
中的配置变量git config --help
。将其设置为 group 可能会奏效。
另一个选择可能是使用类似吉托西斯管理存储库。