我在 Ubuntu 服务器上有一个远程裸 Git 存储库,其中文件由 usermy_project
和 group 拥有,并相应地my_project
设置了权限。所有提交者都是他们自己在组中my_project
。
当有人提交然后从任何带有用户的 Ubuntu 笔记本电脑通过 SSH 推my_user
送到服务器时,远程存储库中的一些文件被创建(更新?),因此它们现在属于 user 和 group my_user
。
当然,当其他人想提交时,他现在不能这样做,因为他没有写权限。我可以将权限设置为 777,但这不是最佳选择。
有什么办法可以在保持受限写入权限的同时解决这个问题?
SUID 和 SGID 位对您有帮助吗?我使用类似的机制来允许 bzr 组的成员将文件提交到集市中心仓库并仍然保留可访问的权限。
设置为
sudo chmod ug+s /home/bzr
/etc/group 包含
bzr:x:1012:bzr,tom,<and a whole bunch of other usernames>
这对我们来说似乎工作得很好,允许 bzr 组中的用户将文件提交到中央存储库。
出于明显的安全原因,设置模式 777 可能并不理想。
如果我错过了重点,哎呀。
查看 .config 中的
core.sharedRepository
配置变量git config --help
。将其设置为组可能会奏效。另一种选择可能是使用gitosis之类的东西来管理存储库。