我想要托管一些 git 存储库。
是否可以像 SVN-Repos 那样使用中央 ACL 文件进行设置?(例如,查看 AuthzSVNAccessFile-Directive)
谢谢,菲利普
答案1
我已经在我们的环境中使用 Gitolite、Gitweb 和 LDAP 解决了这个问题。Gitolite 非常强大,并且比 Subversion 更好地支持 ACL 和授权(例如 Subversion 不知道如何与 LDAP 目录通信)。我建议您阅读 Gitolite这里。由于您已将问题标记为apache2
您可能想尝试使用 Git 和 Gitolite 的 HTTP 后端,您可以找到完整的设置指南这里(适用于 Gitolite g2)。
我们的设置简要介绍:LDAP 目录包含posixGroup
根据 Gitolite 中定义的 Git 存储库命名的组(在我们的例子中);对存储库的访问基于这些组。Gitolite 使用简单的 Perl 或 Bash 脚本(请参阅这里例如脚本)来查询目录中用户的组成员身份,从而决定用户是否以及如何访问给定的存储库。这需要“大配置”设置(Gitolite g2)和LDAP 支持,但您也可以轻松地静态定义 ACL,而无需 LDAP。
Gitweb 只是锦上添花,但如果你使用它,你可能希望你的用户只能看到他们有权限的仓库。Gitweb 通过基于定义的 Gitolite ACL 进行每个仓库授权来实现这一点。请参阅这里了解详情。
如您所见,有相当多的部分相互作用,因此请务必彻底阅读(并理解)Gitolite 文档,它非常全面。
编辑:由于 Gitolite g3 的发布和 Sitaram Chamarty 对 Gitolite 文档的重组,自本文发布以来,许多链接已失效。我已尽我所能更新了它们,但有些链接仍然指向 Gitolite g2 的文档。这是因为一些概念从 g2 到 g3 发生了很大变化(例如“大设置”或)。