1

ジレンマ: 私が取り組んでいる Linux プログラムは:

  1. git+ssh:// プロトコルで「パッケージ」を取得します (Git を使用)。
  2. その「パッケージ」をシステムにインストールします。

git+ssh が機能するためには、Git が私のキーを認識する必要があります。

「パッケージ」インストールの場合、プログラムにはスーパーユーザー権限が必要です。

制限: プログラム自体で特権を昇格 (sudo を呼び出す) しないでください。ユーザーは、sudo を使用して明示的に呼び出す必要があります。(ユーザーが root としてログインし始めている間にプログラムを実行する場合は無視しましょう — 彼がキーを正しくセットアップすると仮定します。)

問題は、sudo で呼び出されたプログラムからユーザー キーを使用して ssh アクセスを行う方法です。

4

1 に答える 1

4

-i identity_file ssh パラメーターを使用します。適切なコマンドを使用するように git に指示するには、GIT_SSH 変数を ssh -i "$@" を呼び出すファイルに設定する必要があります。

それができない場合は、git pull コマンドを実行している間、特権をドロップする必要があります。

sudo -u <original_user> git fetch git+ssh:// 

${SUDO_USER} 環境変数を使用して、元のユーザーが誰であったかを調べることができます。

于 2011-01-04T09:27:11.207 に答える