저는 리눅스 민트 17.3을 사용하고 있습니다.
기본적으로 종료 또는 기타 명령(예: 재부팅, 전원 끄기)을 실행하려면 루트 권한이 필요합니다.
그래서 다음 줄을 추가했습니다.
lesaff_b ALL=(ALL) NOPASSWD:/sbin/poweroff、/sbin/reboot、/sbin/shutdown
나는 여전히 이 명령을 sudo로 실행해야 한다는 것을 알고 있지만 암호를 묻지 않으므로 각 명령에 대한 별칭을 만들었습니다.
처음에는 제대로 작동했지만 작동이 중단되었으므로 이제 이 명령을 sudo로 실행하고 비밀번호를 입력해야 합니다. sudo를 사용하지 않고 이러한 명령을 실행하는 다른 방법이 있다는 것을 알고 있지만 왜 작동해야 할 때 작동하지 않는가? 그리고 가장 중요한 것은 애초에 작동하는 이유는 무엇입니까?
답변1
우리가 댓글에서 배운 내용을 고려하면 다음과 같습니다.
- 일부 명령을 실행합니다
sudo
(Q에 인용된 NOPASSWD 행을 추가하기 위해 sudoer를 편집할 수도 있음). timestamp_timeout
sudo는 이러한 자격 증명을 캐시하여 재부팅 또는 종료를 실행할 수 있도록 합니다(기본적으로 5분이라고 생각합니다).- 그러나 재부팅 후(이상
timestamp_timeout
) 기존 ALL:ALL sudo 규칙이 있기 때문에 이러한 명령에 대한 비밀번호를 묻는 메시지가 다시 표시됩니다.아니요NOPASSWD 플래그 - 추가하지 않았지만 멈췄습니다. 왜냐하면sudo는 마지막 일치 규칙을 사용합니다., 예기치 않게 메시지가 표시됩니다.
여기서 해결 방법은 기존 ALL:ALL 규칙 아래로 규칙을 이동하는 것입니다(또는 원하는 경우 기존 ALL:ALL 규칙에 NOPASSWD 플래그를 추가).