, 항상 다음이 있습니다 /etc/sudoers
.
root ALL=(ALL:ALL) ALL
그러나 루트 사용자(UID 0)는 를 실행할 때 비밀번호가 필요하지 않습니다 sudo command
.
NOPASSWD
다른 사용자의 경우 항목에 다음 항목이 포함되어 있거나 이전 인증 시간이 초과되지 않은 경우를 제외하고 비밀번호가 필요합니다 .
user ALL=(ALL:ALL) NOPASSWD:ALL
^^^^^^^^
답변1
sudo
구성된 방식에 따라 사용자가 UID 0(또는 다른 사용자)으로 명령을 실행할 수 있도록 허용합니다. UID 0은 이미 UID 0이므로 루트에게 비밀번호를 묻지 않고도 UID 0으로 명령을 실행할 수 있습니다.
또한 루트는 누구에게나 액세스할 수 있으므로 su
UID 0으로 실행할 때 비밀번호를 묻는 메시지를 표시할 필요가 없습니다.sudo -u user
참고: 루트를 사용해야 하는 PAM 설정도 있다고 생각합니다 su
.
답변2
그래도 흥미로운 불일치입니다. 루트에는 CAP_SETUID
다음과 같은 기능이 있으므로 루트를 중지할 필요가 없으므로 CAP_SETGID
sudo가 필요하지 않습니다. 원하는 것은 무엇이든 할 수 있습니다.
검사 중인 것이 기능이 아닌 루트 라면 sudo
잠재적인 버그가 있을 수 있습니다. 기능이 없는 루트는 업그레이드될 수 있습니다(코드를 보거나 테스트하지 않고는 알 수 없습니다).