사용자를 루트로 전환하고 나머지 실행 스크립트를 실행하십시오.

사용자를 루트로 전환하고 나머지 실행 스크립트를 실행하십시오.

사용자를 루트로 변경하고 쉘 스크립트에서 나머지 명령을 루트로 실행했습니다.

답변1

현재가 0인지 확인 uid하고 그렇지 않은 경우 스크립트를 루트로 다시 실행합니다.

[[ $UID = 0 ]] || exec sudo $0 "$@"

예를 들어 스크립트의 두 번째 줄(뒤 "#!/bin/bash")을 작성하면 요청된 작업이 수행됩니다.

원래 사용자가 필요하지 않은 긴 섹션이 시작 부분에 있는 경우 if 문을 사용하여 이를 수행합니다.

#!/bin/bash
if [[ $UID = 0 ]]
then
    : do privileged stuff
else
    : do unprivileged stuff
    exec sudo $0 "$@"
fi

$UID값은 bash에만 적용됩니다(질문에 태그가 지정되었기 때문에 사용됨 bash). 보다 이식성이 뛰어난 스크립트는 id.

답변2

setuid 비트를 사용할 수도 있습니다.

관련 정보