0

user のホームディレクトリ内にセットアップされたWebサーバー(Apache)にgitリポジトリがありますa

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

git-repository は stash-server でホストされています。認証は、ユーザー a の ssh キーを介して機能します。

git log現在、そのリポジトリからの抜粋を表示する CGI スクリプトを作成しようとしています。それはかなりうまくいきますが、CGIスクリプトは userではなくgit pulluser によって実行されるため、CGIスクリプト内に入ることができないようです。ユーザーには、によって複製された git-repository のコンテンツを読み取る権限がなく、stash-server に設定された ssh-key がありません。anobodynobodya

プルできるようにgit pullユーザーとして「マスク」する方法で CGI スクリプト内から実行する方法はありますか?a

4

1 に答える 1

0

少なくとも 3 つのオプションがあります。

  1. nobodyを所有する別のクローンを作成します。
  2. a所有するクローンを変更して、との両方が属するグループに割り当てます。anobody
  3. リポジトリでa定期的に実行するように実行される cron ジョブを作成します。git fetchリポジトリを誰でも読み取り可能にします。たとえば、origin/masterではなくの観点から動作するように CGI プログラムを変更する必要がある場合があります。master

nobodyオプション 1 と 2 については、Stash にアクセスできるように手配する必要があります。可能性の 1 つは、パスワードのない (暗号化されていない) SSH キーを作成し、nobody承認のために公開キーを Stash に追加することです。これにはいくつかのリスクが伴います: の秘密鍵のコピーを取得した人は誰でも、nobodyできることは何でも簡単に実行nobodyできます。

于 2016-07-19T15:34:15.440 に答える