5

sudoプログラムを実行するには、を使用する必要があります。

 sudo ./my_program

プログラムから実行しようとしていますgit cloneが、私の代わりにrootユーザーのSSHキーを使用しようとしています。私のプログラムを最初に呼び出したユーザーとしてこの単一のコマンドを実行する方法はありますか?

私はできると思います:

su - original_user -c "git --version"

しかし、どうすれば元のユーザーのユーザー名を把握できますか?それとも、これに別のエレガントな解決策がありますか?

4

2 に答える 2

3

sudoマニュアルには$SUDO_USER、元のユーザーのユーザー名と$SUDO_UID元のユーザーのUIDが記載されていることが示されています。

于 2012-05-28T03:31:58.900 に答える
0

Webアプリケーションからファイルを作成しているときにNAS上のSambaでこの問題が発生しました。

この場合、実行中のプロセスを取得し、どのユーザーがsambaを実行しているかを判別しました。その名前を分離した後、私は正しいユーザーアカウントを持っていました。多分これはあなたの状況でもうまくいくでしょうか?

この場合、ps出力をフィルタリングして、プログラムの名前を検索する必要があると思います。bashでテストして、それが機能するかどうかを確認します。

于 2012-05-28T03:30:05.440 に答える