0

我在网络服务器(Apache)上有一个 git 存储库,它设置在 user 的主目录中a

git clone ssh://a@git_url:7999/path/to/repository/repo.git

git-repository 托管在存储服务器上。身份验证通过用户 a 的 ssh 密钥进行。

现在我正在尝试构建一个 CGI 脚本,它向我展示了该存储库中的一些摘录git log。这非常有效,但我似乎无法git pull进入 CGI 脚本,因为它不是由 user 运行a,而是由 user运行nobody。用户nobody无权读取 git-repository 克隆的内容,a也没有在 stash-server 上设置 ssh-key。

有没有一种方法可以git pull从 CGI 脚本中以它“屏蔽”为用户的方式运行,a以便它能够拉取?

4

1 回答 1

0

你至少有三个选择。

  1. 创建一个nobody拥有的单独克隆。
  2. 修改a拥有的克隆以分配给两者anobody所属的组。
  3. 创建一个运行为a定期git fetch在存储库上运行的 cron 作业。使存储库世界可读。例如,您可能需要修改您的 CGI 程序以根据origin/master而不是master.

对于选项 1 和 2,您需要安排nobody访问 Stash。一种可能性是为 Stash 创建一个无密码(未加密)的 SSH 密钥nobody并将公钥添加到 Stash 以进行授权。这确实带来了一些风险:任何获得 的nobody密钥副本的人都可以轻松地做任何nobody可以做的事情。

于 2016-07-19T15:34:15.440 回答