1

设置一个 git 服务器,多个用户将能够提交更改。

许多相关文档建议给予他们对存储库的写访问权限并使用 SSH 进行访问控制。例如http://git-scm.com/book/ch4-2.html甚至对数百名用户也建议这样做。Gitosis 似乎继续使用相同的方法,允许对存储库进行 SSH 写入访问。

所以我的问题是:

有什么办法阻止某人ssh server "rm -r /home/git/the_repository"

在典型安装中,对共享存储库具有提交权限的人是否真的获得了足够的文件系统访问权限来删除它?

4

2 回答 2

1

实现您想要实现的目标的现代方法是通过gitolite,它允许您作为 repo 管理员定义相对细粒度的访问规则。

gitolite 通过 ssh 密钥识别用户,因此用户甚至不必拥有对服务器的 shell 访问权限。

根据我的经验, gitolite 文档非常好。

于 2013-02-15T15:09:50.473 回答
0

您不应该允许用户shell访问存储库机器。

如果您打算以这种方式进行访问控制,则用户的可运行命令应限制为git.

但是,这不会阻止他们做其他讨厌的事情,比如为每个分支推送空 refs。如果您不信任将使用中央存储库的人,您需要一个更细粒度的权限系统。

为此,我会推荐Gerrit 。即使你不使用它进行代码审查,它仍然提供围绕 git 的管理和权限系统。

另一种选择是通过 HTTP 而不是 SSH 推送;HTTP 服务器提供了额外的限制,您可以设置这些限制以避免恶作剧。

于 2013-02-15T15:09:58.150 回答