Bashスクリプトのsudo:常にパスワードを待つわけではありません。

Bashスクリプトのsudo:常にパスワードを待つわけではありません。

次の単純なbashスクリプトがあります。

#!/usr/bin/env bash

sudo ./some_other_script_01
sudo ./some_other_script_02

このスクリプトを実行するといつもいつものようにパスワードプロンプトを確認してください。

[sudo] password for user: 

しかし、時には説明できないほど./some_other_script_01パスワードを入力する前に実行が開始されます(おそらくroot権限がないようです)。こんなことが起きてもした(まだ提供されていない)パスワードを入力するように求められます。

この現象が発生した場合は、スクリプトを終了して再起動する必要があります(root権限で実行するように)。

ベストアンサー1

Sudoは一度だけで十分です。 sudoで始めてくださいwrapper.sh。スクリプトにroot権限があることを確認してください。 sudo の呼び出しはもう必要ありません。

sudo ./wrapper.sh

ラッパー.sh:

#!/usr/bin/env bash

if [ "$EUID" -ne 0 ]
  then echo "Please run as root"
  exit
fi

./some_other_script_01
./some_other_script_02

おすすめ記事