UID (EUID) が 0 かどうかのチェックします。
POSIX sh 互換であり、多くのスクリプトで実行できます。
なお、「#!/usr/bin/env bash」のように実行時の環境変数を読み込めるようにしなければ変数が未定義エラーとなるので注意が必要です。
#!/usr/bin/env bash if [ ${EUID:-${UID}} != 0 ]; then echo "This script must be run as root" exit 1 else echo "I am root user." fi
whoami で取得したユーザ名が "root" であるか調べます。
ただし、superuserのユーザ名が必ずしも "root" とは限らないことに注意が必要です。
(特殊な環境を除いて、多くの環境ではrootとなります。実行確認していれば十分に利用できます。)
if [ `whoami` != 'root' ]; then echo "This script must be run as root" fi
なお、bash環境であれば以下の書き方が推奨されています。
if [ $(whoami) != "root" ]; then echo "This script must be run as root" fi
idコマンドでrootユーザのユーザIDを取得し、スクリプト実行者のUID環境変数と比較します。
ただし、superuserの UID が必ずしも 0 とは限らないので、注意が必要です。
(superuserのユーザ名が "root" でない場合には用いることができません。)
#!/usr/bin/env bash if [ $UID != `id -u root` ]; then echo "This script must be run as root" exit 1 else echo "I am root user." fi
if [ "${USER}" = "root" ]; then echo "I am root user." else echo "This script must be run as root" exit 1 fi