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

e-s*_*tis 5 permissions ssh git

我在 Ubuntu 服务器上有一个远程裸 Git 存储库,其中的文件归用户my_project和组所有my_project,并相应地设置了权限。所有提交者都是他们自己在组中my_project

当有人提交然后my_user通过 SSH从任何带有用户的 Ubuntu 笔记本电脑推送到服务器时,远程存储库中的一些文件被创建(更新?),因此它们现在属于用户和组my_user

当然,当其他人想要提交时,他现在无法提交,因为他没有写权限。我可以将权限设置为 777,但这不是最佳选择。

有什么办法可以在保持受限写入权限的同时解决这个问题?

Tom*_*nor 4

SUID 和 SGID 位对您有帮助吗?我使用类似的机制来允许 bzr 组的成员将文件提交到集市中央存储库,并且仍然保留可访问权限。

drwsrwsr-x  3 bzr          bzr          4.0K 2010-04-15 17:58 bzr
Run Code Online (Sandbox Code Playgroud)

设置为 sudo chmod ug+s /home/bzr

/etc/group 包含 bzr:x:1012:bzr,tom,<and a whole bunch of other usernames>

这似乎对我们来说效果很好,允许 bzr 组中的用户将文件提交到中央存储库。

出于明显的安全原因,设置模式 777 可能并不理想。

如果我错过了重点,哎呀。