ユーザーを強制的にルートにする方法

ユーザーを強制的にルートにする方法

私の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渡されません。)

答え2

私はスクリプトの上部に簡単にコピーして貼り付けることができるこの1行バージョンを使用しています。

[ `whoami` = root ] || { sudo "$0" "$@"; exit $?; }

答え3

sudo chown root yourcode
sudo chmod 500 yourcode

望むより!

答え4

ルートのみを実行できるように権限を変更できます。あるいは、whoamiルートでない場合は、コマンドを使用してsudoを強制することもできます。

関連情報