ユーザーをrootに切り替え、残りの実行スクリプトを実行します。

ユーザーをrootに切り替え、残りの実行スクリプトを実行します。

ユーザーをrootに変更し、シェルスクリプトから残りのコマンドをrootとして実行しました。

答え1

現在がゼロであることを確認しuid、そうでない場合はスクリプトをrootとして再実行します。

[[ $UID = 0 ]] || exec sudo $0 "$@"

たとえば、スクリプトの2行目(後ろ"#!/bin/bash")を作成すると、要求されたアクションが実行されます。

元のユーザーが必要としなかった長いセクションが先頭にある場合は、ifステートメントを使用してこれを行います。

#!/bin/bash
if [[ $UID = 0 ]]
then
    : do privileged stuff
else
    : do unprivileged stuff
    exec sudo $0 "$@"
fi

この$UID値はbashにのみ適用されます(質問にタグが付けられているため使用されますbash)。より移植性に優れたスクリプトはid

答え2

setuid ビットも使用できます。

関連情報