次の行を含むシェルスクリプトがあります。
CURRENT_USER=${USER}
echo $CURRENT_USER
su
echo switch to `who am i`
2行目を実行した後、シェルはrootパスワードの入力を求めます。正しいパスワードを入力して管理者としてログインした後、最後の行は実行されません。
この問題の原因は何ですか?
ベストアンサー1
su
新しいシェルを起動します(または別のコマンドを実行します)。現在、シェルのUIDを魔法のように切り替えることはありません。パスワードを入力した後に入力すると、スクリプトがステートメントをexit
実行し続けることがわかりますecho
(ただし、ルートではなく元のユーザーとして)。
ルートとして実行する必要があるスクリプト部分を別のスクリプトに入れますsu
。