사용자를 강제로 루트로 만드는 방법

사용자를 강제로 루트로 만드는 방법

내 우분투 컴퓨터에서 작동하는 bash 스크립트를 작성했습니다. 이제 이 스크립트가 내 사용자로 실행되는 것을 방지하고 루트(sudo)로만 실행하고 싶습니다.

이것을 강제하는 것이 가능합니까? 내 사용자 이름으로 스크립트를 실행하면 스크립트가 루트 권한을 요청하도록 할 수 있나요?

답변1

bash이 목적을 위한 표준 기능이 있습니다 .

# Check if we're root and re-execute if we're not.
rootcheck () {
    if [ $(id -u) != "0" ]
    then
        sudo "$0" "$@"  # Modified as suggested below.
        exit $?
    fi
}

아마도 더 우아한 방법이 있을 것입니다(나는 이 글을 오래 전에 썼습니다!). 그러나 이것은 나에게 잘 작동합니다.

스크립트에서 이 함수를 일관되게 사용하려면 스크립트가 원래 받은 인수를 전달해야 합니다.

사용법: ( 매개변수는 rootcheck 함수 rootcheck "${@}" 에만 rootcheck전달되지 않습니다 .)

답변2

나는 스크립트 상단에 쉽게 복사하여 붙여넣을 수 있는 이 한 줄 버전을 사용하고 있습니다.

[ `whoami` = root ] || { sudo "$0" "$@"; exit $?; }

답변3

sudo chown root yourcode
sudo chmod 500 yourcode

바라보다!

답변4

루트만 실행할 수 있도록 권한을 변경할 수 있습니다. 또는 whoami루트가 아닌 경우 명령을 사용하여 sudo를 강제 실행할 수 있습니다.

관련 정보