首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只显示用户可以使用gitweb访问的gitweb

只显示用户可以使用gitweb访问的gitweb
EN

Stack Overflow用户
提问于 2011-09-03 15:37:37
回答 1查看 1.9K关注 0票数 5

我目前正在尝试设置一个GIT存储库服务器,这样我们就可以从SVN切换到GIT。我几乎把一切都搞定了,但剩下的是一个问题。

当前设置如下:

  • 所有开发人员(和非开发人员)都有一个用户帐户&正确的组,因为服务器是NIS客户端。
  • 所有的repos都是在/var/git/
  • 所有拉/推都是在ssh上完成的。

这是完美的工作到目前为止,并消除了赤霉病或海泡石的需要。

因为我想要一个可浏览的概述,我已经建立了gitweb,包括pathinfo。由于repos是私有的,所以我已经通过Perl AuthenNIS设置了身份验证,这是可行的,但是这里遇到了一个问题。

不希望所有的开发人员都能访问所有的存储库,但是gitweb只显示了它( apache用户)可以读取的所有存储库。

所以我的问题是:是否可以使gitweb只显示gitweb当前登录的用户可以访问?

可能的解决办法

  1. 进一步通过.htaccess进行访问控制。pathinfo将启用这一功能,但它不会阻止通过非pathinfo访问回购(例如/repo.git/不起作用,但/gitweb.cgi?p=repo.git会)
  2. 建立完整的珠光体/海泡石环境,并将其集成到gitweb (本质上是)中。我想防止这种情况,因为开销是不需要的。
  3. 使gitweb作为经过身份验证的HTTP用户运行。这将解决所有的访问控制问题,但我不知道如何解决
  4. gitweb的$export_auth_hook$cgi->remote_user相结合似乎很有希望,但我对perl的理解过于有限,无法使用它(钩子需要验证用户在显示/导出它之前是否拥有访问回购目录的权限)。

是否有人知道如何使3或4工作或有其他解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-04 05:01:29

如果开发人员使用ssh在他们自己的用户名下推举/提取存储库服务器,那么完成这一任务的最简单方法可能是找到一种在该用户身份下运行gitwebgit的方法。

例如,在执行gitweb之前找到一种添加身份验证钩子的方法。然后在gitweb周围添加一个包装器,该包装器执行sudo -u $user gitweb.real,其中$user是经过身份验证的用户名。

或者,只需包装git命令,即让gitweb执行一个执行sudo -u $user {real-git-path}的包装器。

要在Apache中实现对NIS/PAM的身份验证,请看一看外部

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7294059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档