我怎样才能让所有人都拥有阅读权限

New*_*Eve 5 git gitolite

在我的gitolite.conf中,我可以设置

repo    COOL_REPOSITORY
        RW+     =   me
        R       =   @all
Run Code Online (Sandbox Code Playgroud)

这给了我写权限,所有其他注册用户都对我的存储库具有读权限。现在我的问题是,我可以将所有人的ssh-key存储在我的keydir中,而不是授予我已注册的所有用户读权限吗?

Von*_*onC 2

您可以从 http VirtualHost 配置调用 gitolite,就像我在我的项目中所做的那样

# GitHttp on @PORT_HTTP_HGIT@
Listen @PORT_HTTP_HGIT@
<VirtualHost @FQN@:@PORT_HTTP_HGIT@>
  ServerName @FQN@
  ServerAlias @HOSTNAME@
  SetEnv GIT_PROJECT_ROOT @H@/repositories
  SetEnv GIT_HTTP_EXPORT_ALL
  SetEnv GITOLITE_HTTP_HOME @H@
  ScriptAlias /hgit/ @H@/sbin/gitolite-shell/
  SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
  <Location /hgit>
    ...
Run Code Online (Sandbox Code Playgroud)

Gitolite 不需要用户注册 ssh 密钥:它只是一个授权层

但仍然通过 http 调用 gitolite 确保您保持其他 Gitolite 功能处于活动状态,例如:

  • 审计跟踪(在.gitolite/logs:您至少仍然知道哪个 IP 地址克隆/拉取/推送了您的存储库)
  • 控制访问(以防您需要@all随时删除规则)

直接使用 git-daemon 或直接 http 访问,而不使用 Gitolite,将意味着放弃任何控制访问。