5

我已经成功地在所有经过身份验证的用户都可以访问的 apache vHost 上设置了 gitweb。

服务器本身通过 https 提供了几个 git 存储库,并且每个用户/组都可以访问这些项目。例如 test1.git 只能被 test1 组读写,而 test2.git 只能被 test2 组读写。

现在我还希望只有这些组在 gitweb 界面中看到他们相应的 git 存储库。是否有可能对 gitweb 拥有这些精细的访问权限?

如果没有,是否有用于 git 的轻量级 web gui,它可以处理每个项目的基本 http 身份验证(以及以后可能的 ldap 身份验证)?

编辑 只是为了让事情更清楚(因为评论似乎有些混乱):示例:

  • 有 10 个存储库(test1、test2、... test10)

  • 用户lockdoc在组test1test3

  • 一旦使用用户名lockdoc和他/她的密码通过 http 进行身份验证,该用户只能看到 git 项目test1test3并且不能浏览/查看任何其他项目

  • 无需在 Web 界面上写入(推送),因为这已经实现

4

1 回答 1

4

没有 GUI,但我建议使用gitolite进行这种细粒度的授权

请参阅此httpd.conf 以获取 LDAP 和 gitolite 访问权限

  • 你可以定义一个 gitweb 访问,它又会调用 gitolite,见这个gitweb.conf.pl脚本
  • 您可以定义一个https访问 s,它也将调用 gitolite (为了允许或拒绝访问,取决于您的 id)

https 配置如下所示:

ScriptAlias /hgit/ @H@/sbin/gitolite-shell/
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
<Location /hgit>
   ...
</Location>

在这两种情况下,您都可以使用基于 LDAP 的身份验证来保护这些 http 地址:

AuthName "LDAP authentication for ITSVC Smart HTTP Git repositories"
AuthType Basic
AuthBasicProvider myldap companyldap
AuthzLDAPAuthoritative Off
Require valid-user

您将在与 gitolite 关联的gitolite.conf配置文件中注册您的用户/组/存储库。

@lockdoc_repos           =   test1 test3 # group of repo

repo @lockdoc_repos
    R                    = lockdoc # read-only access for lockdoc
    R                    = gitweb daemon # can be browsed   

有关如何允许浏览存储库的更多信息,请参阅“删除 R @all 规则后在 gitolite 中找不到测试/信息/参考” ,作者是 gitolite 本人的创建者Sitaram ( Sitaram Chamarty ) 。

于 2012-12-31T09:25:28.847 回答