답변:
NOPASSWD
지시문을 사용하십시오파일 에서 NOPASSWD
지시문을 사용할 수 있습니다 ./etc/sudoers
사용자가 호출 user
되고 호스트가 호출 host
되면 다음 행을 /etc/sudoers
다음에 추가 할 수 있습니다 .
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
이를 통해 사용자 는 비밀번호를 입력하지 않고도 user
원하는 명령을 실행할 수 host
있습니다. 다른 모든 sudo
ed 명령에는 여전히 암호가 필요합니다.
맨 페이지에 설명 된대로 sudoers
파일에 지정된 명령은 정규화 되어야합니다 (즉, 명령의 절대 경로를 사용하여 실행) . 상대 경로를 제공하는 것은 구문 오류로 간주됩니다.sudoers
명령이 후행 /
문자로 끝나고 디렉토리를 가리키는 경우 사용자는 해당 디렉토리에서 하위 디렉토리가 아닌 해당 디렉토리에서 모든 명령을 실행할 수 있습니다. 다음 예제에서 사용자 user
는 디렉토리에서 모든 명령을 실행할 수 있습니다 /home/someuser/bin/
.
user host = (root) NOPASSWD: /home/someuser/bin/
참고 : 실수로 파일에 잘못된 것을 쓰려는 경우를 대비하여 항상 시스템에서 사용자를 잠그지 않도록 파일 visudo
을 편집하려면 명령 을 사용 하십시오. 수정 된 파일을 임시 위치에 저장 하고 수정 된 파일을 오류없이 구문 분석 할 수있는 경우 에만 실제 파일을 덮어 씁니다 .sudoers
sudoers
visudo
sudoers
/etc/sudoers.d
수정 대신 사용/etc/sudoers
/etc/sudoers
파일 을 편집하는 대신 , /etc/sudoers.d
예를 들어 두 줄을 새 파일에 추가 할 수 있습니다 /etc/sudoers.d/shutdown
. 이는 sudo
권한에 대한 다양한 변경 사항을 분리 하고 sudoers
업그레이드하기 쉽도록 원본 파일을 그대로 유지 하는 우아한 방법입니다 .
참고 : 다시 명령 visudo
을 사용하여 파일을 편집하여 시스템에서 자신을 잠그지 않도록해야합니다.
sudo visudo -f /etc/sudoers.d/shutdown
또한 새 파일의 소유자와 권한이 올바르게 설정되도록합니다.
sudoers
엉망인 경우visudo
파일을 편집 하는 데 사용하지 않은 상태에서 실수로 파일을 엉망으로 만들 /etc/sudoers
거나 엉망으로 /etc/sudoers.d
만들면 잠금 상태가 sudo
됩니다.
해결책은를 사용 pkexec
하는 파일을 수정하는 것 sudo
입니다.
해결하려면 /etc/sudoers
:
pkexec visudo
해결하려면 /etc/sudoers.d/shutdown
:
pkexec visudo -f /etc/sudoers.d/shutdown
sudoers
파일에 대한 소유권 및 / 또는 권한이 올바르지 않은 경우 파일이 무시되므로이 sudo
상황에서 자신이 잠겨있을 수도 있습니다. 다시이 pkexec
문제를 해결 하는 데 사용할 수 있습니다 .
올바른 권한은 다음과 같아야합니다.
$ ls -l /etc/sudoers.d/shutdown
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown
소유권과 권한pkexec
을 수정 하려면 다음 과 같이 사용하십시오 .
pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown
user
주어진 다른 방법에없는 sudo
권리를 다른 명령이 사용자에 의해 sudoed 할 수 없습니다. 한 번 봐 가지고 man sudo
와 man sudoers
.
mgd ALL=(root) NOPASSWD: /var/root/test
. 나는 사용자 mgd
이며 "모든 호스트에서"를ALL
의미 합니다 . /var/root/test
권한이있는 간단한 "Hello World"셸 스크립트입니다 -rwx------ 1 root wheel 27 12 Jun 09:54 /var/root/test
. 내가하지 더 시스템에 다른 변화를.
host
의 sudoers 파일에?