管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

rootユーザで実行されているかどうかを確認する方法

rootユーザとして実行してほしいシェルスクリプトが、rootユーザで実行されているかを確認する方法。Google Geminiの回答を利用。

検証環境

[hoge@fuga ~]$ cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.9"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.9

確認方法

# $EUIDはEffective User ID の略称で、日本語では実効ユーザーID by Google Gemini
echo $EUID
if [ "$EUID" -ne 0 ]; then
  echo "このスクリプトはrootユーザで実行してください"
  exit 1
else
  echo "root"
fi

検証結果

非rootの場合

[hoge@fuga ~]$ ./check_user.sh 
1000
このスクリプトはrootユーザで実行してください

sudoで実行した場合

[hoge@fuga ~]$ sudo ./check_user.sh 
0
root

rootユーザで実行した場合

[root@fuga ~]# ./check_user.sh
0
root

参考にしました