답변:
유효 uid를 당기려면 다음 명령을 사용하십시오.
id -u
결과가 '0'이면 스크립트가 루트로 실행 중이거나 sudo를 사용 중입니다. 다음과 같은 방법으로 검사를 실행할 수 있습니다.
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "Not running as root"
exit
fi
소유권을 루트로 변경하면
chown root:root file
권한을 700으로 설정
chmod 700 file
sudo로 실행하라는 제안없이 동일한 작업을 수행합니다.
그러나 나는이 답변을 완전성을 위해 게시 할 것입니다.
sudo git add <file>
스크립트를 루트 또는 어떤 종류의 보안 예방책으로 실행해야한다고 사용자에게 알리는 목표는 무엇입니까?
uid 제안 중 아무 것도 제안하지 않는 것보다 사용자에게 알리고 싶지만 보안상의 예방책처럼 말에 대한 타이어만큼 유용합니다. 어쨌든 실행하십시오.
이것이 보안 문제인 경우 다른 사용자가 스크립트를 읽거나 실행할 수 없도록 스크립트를 root : root가 소유 한 700으로 설정해야합니다.
whoami 명령도 사용할 수 있습니다.
if [ ! "`whoami`" = "root" ]
then
echo "\nPlease run script as root."
exit 1
fi
bash 변수 $EUID
는 스크립트가 실행중인 유효 UID를 표시합니다. 스크립트가 루트로 실행되도록 $EUID
하려면 값이 0인지 여부를 확인하십시오 .
if [ $EUID -ne 0 ]; then
echo "$0 is not running as root. Aborting."
exit 2
fi
/usr/bin/id
외부 명령이 필요 없기 때문에 (bash 스크립트의 경우!) 솔루션보다 낫습니다 .
echo
와 라인을 sudo "$0" "$@"
, 그리고 교체 exit 2
와 함께 exit $?
.
루트로만 스크립트를 실행 가능하게하는 간단한 방법은 다음과 같이 스크립트를 시작하는 것입니다.
#!/bin/su root