したがって、rootとして実行する必要があるシェルスクリプトがありますが、sudoを実行するユーザーとしてrunuserを使用してコマンドを実行したいとします。私はできますrunuser -u tux echo penguin
。ただし、sudo
実行中のスクリプトにユーザー名をハードコードする必要がないように、ルートシェルから root として実行しているユーザーのユーザー名を取得するにはどうすればよいですか。どうすればいいですか?
答え1
変数の使用SUDO_USER
:
$ env | grep SUDO
$ sudo env | grep SUDO
SUDO_COMMAND=/sbin/env
SUDO_USER=terdon
SUDO_UID=1000
SUDO_GID=1000
$SUDO_USER
したがって、変数が設定されていることを確認できます。
if [ -n "$SUDO_USER" ]
then
# run commands related to the original invoking user
fi