0

git pull のスクリプト作成に少し助けが必要です。

git pull のスクリプトを作成しようとしているイントラネット サーバーがあり、アクセス許可の問題が発生しています。

error: cannot open .git/FETCH_HEAD: Permission denied

サーバーにユーザー アカウントをセットアップし、そのアカウントにプロジェクトを複製し、chmod 775 -R ディレクトリ ツリーを作成し、パスワード プロンプトが表示されないように ssh キーをセットアップしました。

スクリプトは次のようになります。

#! /bin/bash
sudo /bin/su - gitrepouser
cd /some/directory/for/git && git pull

別のユーザーとしてスクリプトを実行すると、sudo コマンドが実行され、exit と入力した後に停止し、エラー メッセージが表示されます。

このスクリプトは、バッチ プロセスによって 10 分間隔で呼び出され、BitBucket から本番環境の変更が取り込まれます。

考え?

4

2 に答える 2

1

おそらく、ユーザーをフォルダーの所有者にする必要があります

chown gitrepouser -Rf /some/directory/for/git
于 2013-05-06T16:56:29.093 に答える
1

問題はsu、独自のシェルを起動することです。2 番目のコマンドはそのシェルでは実行されませんが、元のシェルで実行されます。これは、次のスクリプトを実行することで実証できます。

#!/bin/bash
su
whoami

実行時にすでにルートになっていない限り、出力されませんroot

su解決策は、の-cスイッチを使用することです。

sudo /bin/su -c "cd /some/directory/for/git && git pull" - gitrepouser
于 2013-05-06T17:02:16.147 に答える