実行にroot権限を必要とするシェルスクリプト(bashではなく/ bin / sh)があります。
通常のユーザーが実行している場合は、rootアクセスを取得して自分自身を再実行するために、ユーザーにパスワードを要求する必要があります。
現在、次のコードを使用しています。
if [ $(id -u) -ne 0 ]; then su root -- $0 $@ ; ... fi
これは問題なく動作しますが、UbuntuのようにrootパスワードがまったくないOSもあります。一方、多くのシステムはroot権限にsudoを使用します。
問題は、スクリプトがユーザーにパスワードの入力を要求しすぎるかどうかをどのように検出できるかということです(たとえばsu
、失敗した場合はパスワードを入力してください-run )。sudo
sudo
su