如何防止 ssh git push 设置文件所有权?

如何防止 ssh git push 设置文件所有权?

我在 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 可能会奏效。

另一个选择可能是使用类似吉托西斯管理存储库。

相关内容