본문 바로가기
Linux, Shell Script

Shell Script root로 실행 하였는지 확인 하기 (EUID / RUID)

by SecuOf 2018. 7. 6.
Shell Script 작성해서 실행할 경우 root 권한인지 확인 해야 하는 경우가 발생한다.
이를 확인하기 위해서 구문 맨 윗쪽에서 if 구문으로 EUID를 확인해서 root 권한인지 확인 하면 된다.

그러기 위해서는 EUID에 대해서 먼저 알아야 한다. 

EUID / RUID 란?
RUID : Real User ID 의 약어로 실제 사용자의 ID를 나타내는 값이다.
EUID : Effective User ID의 약어로 어떤 유저권한으로 프로세스를 실행하고 있는지를 나타내는 값이다.

shell script 파일을 실행하게 되면 Bash Shell은 항상 순차적으로 실행된다. 따라서 스크립트 맨 위에서 if 구문으로 root가 맞는지 확인 하면 된다. 참고로 Root의 EUID 값은 “0”이다.

/etc/passwd 파일에서도 각 사용자별 uid(User ID)를 확인할수 있다.
~/Downloads # cat /etc/passwd | awk -F ":" '$3<=0 {print $1, $3}'
...
nobody -2
root 0
~/Downloads #




root로 실행되었는지 확인하는 script
#!/bin/bash

# Make sure only root can run our script
if (( $EUID != 0 )); then
    echo "This script must be run as root"
    echo $EUID
    exit
fi
echo "It's Ok"
echo $EUID