如何防止SSH混帐推动设置文件的所有权?

我有一个Ubuntu服务器上的远程裸Git存储库,其中的文件是由用户my_project和组my_project拥有相应的权限设置。 所有的委托人都属于my_project组。

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

当然,当其他人想要提交时,他现在不能这样做,因为他没有写权限。 我可以将权限设置为777,但这不是最好的select。

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

SUID和SGID位可以帮助你吗? 我使用类似的机制来允许bzr组的成员将文件提交到集市中央仓库,并保持可访问的权限。

 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可能并不理想。

如果我错过了这一点,哎呀。

git config --help查看core.sharedRepositoryconfigurationvariables。 将其设置为组可能会伎俩。

另一个select可能是使用像gitosis来pipe理存储库。