私はbash(Stretchを実行しているRaspberry Piで)のいくつかのインストールスクリプトに取り組んでいます。ファイルを/usr/local/bin
とユーザープロファイルにコピーし、必要に応じていくつかのパッケージをインストールします。スクリプトは約2000行で、20〜30のコマンドにはrootが必要です。
今私の質問です:Sudo
を使用してスクリプト全体を実行する必要がありますか、それとも標準ユーザーとSudoを実行して、スクリプト内の管理者権限が必要なコマンドのみを実行する必要がありますか?
Sudo
を使用してスクリプトを実行しても害はないことがわかっている場合(たとえば、root
特権を必要とする新しいファイルは作成されませんが、それ以外の場合は、Sudo
で実行する必要があります。
いくつかの副作用があることがわかっている場合、または確信がない場合は、安全な方法でそれを行い、必要な場所でSudo
を使用してください。
スクリプトのヘッダーにこれを入れます:
#!/bin/bash
#Detects if script are not running as root...
if [ "$UID" != "0" ]; then
#$0 is the script itself (or the command used to call it)...
#$* parameters...
if whereis Sudo &>/dev/null; then
echo "Please type the Sudo password for the user $USER"
Sudo $0 $*
exit
else
echo "Sudo not found. You will need to run this script as root."
exit
fi
fi