私のUbuntuコンピュータで動作するbashスクリプトを書いた。これで、このスクリプトが私のユーザーとして実行されるのを防ぎ、ルートとしてのみ実行したいと思います。
これを強制することは可能ですか?私のユーザー名でスクリプトを実行すると、スクリプトにroot権限を要求させることができますか?
ベストアンサー1
bash
この目的のための標準機能があります。
# Check if we're root and re-execute if we're not.
rootcheck () {
if [ $(id -u) != "0" ]
then
sudo "$0" "$@" # Modified as suggested below.
exit $?
fi
}
おそらくもっとエレガントな方法があるでしょう(私はこの記事をずっと前に書いています!)。しかし、これは私にとってうまくいきます。
スクリプトでこの関数を一貫して使用するには、スクリプトが元々受け取った引数を渡す必要があります。
使用法:(パラメータはrootcheck関数rootcheck "${@}"
にのみrootcheck
渡されません。)