"sudo"로 실행할 때마다 "/etc/sudoers"에 추가된 명령의 경로 이름을 지정해야 합니까?

"sudo"로 실행할 때마다 "/etc/sudoers"에 추가된 명령의 경로 이름을 지정해야 합니까?

예를 들어 에 추가한 줄의 경우 /etc/sudoers:

t  ALL=(ALL) NOPASSWD: /path/to/myscript

/path/toPATH현재 사용자의 에는 있지만 에는 t없습니다 .PATHroot

$ sudo /path/to/myscript

비밀번호 없이 작동하지만 run script를 사용할 때마다 스크립트의 경로 이름을 지정해야 합니까 sudo?

$ sudo myscript
[sudo] password for t: 
sudo: changeCpuFreq.sh: command not found

myscript경로가 의 경로가 아니기 때문에 비밀번호를 사용해도 작동하지 않습니다 .PATHroot

$ sudo -E env "PATH=$PATH" myscript
[sudo] password for t: 

PATHt에 복사되었기 때문에 비밀번호를 사용할 수 있지만 root문제는 여전히 비밀번호가 필요하다는 것입니다.

감사해요.

답변1

그러나 sudoers 자체에서는 전체 경로 이름을 정의할 필요가 없습니다.~해야 한다보안상의 이유로 이렇게 하십시오.

그렇지 않으면 루트 권한을 얻는 것이 상당히 쉽습니다.다른동일한 이름을 가진 바이너리 파일프레스토 악장, 즉각적인 루트 권한.

답변2

당신은 사용자 정의할 수 있습니다스도편집자 /etc/sudoers./etc/sudoers.d/*

경고하다! ! !만약 당신의뿌리계정이 비활성화되었습니다.비쥬도강하게편집에 대한 제안스도구성.

sudoer에 대한 다양한 검색 경로는 아래에 정의되어 있습니다.내 사용자:

Defaults:myuser secure_path="/path/to:/usr/sbin:/usr/bin:/sbin:/bin"

다음은 sudo를 수행할 때 다양한 검색 경로를 정의합니다.뿌리

Defaults>root secure_path="/path/to:/usr/sbin:/usr/bin:/sbin:/bin"

/path/to/myscript다음은 호출할 때 다른 검색 경로만 정의합니다.스도:

Defaults!/path/to/myscript secure_path="/path/to:/usr/sbin:/usr/bin:/sbin:/bin"

위의 모든 항목은 "NOPASSWD" 규칙과 잘 통합되며 호출 시 경로 접두어가 필요하지 않습니다 sudo myscript.

관련 정보