나는 에 속해 있습니다 sudoers.d
. 이 사용자는 foobar
이 sudo
그룹에 속해 있습니다. 사용자 생성 시 비밀번호가 임의의 값으로 암호화되기 때문에 사용자는 공개키 인증을 foobar
통해서만 로그인이 가능할 것으로 예상된다 . 그런 다음 컴퓨터에 액세스한 후 실행하여 비밀번호를 설정 ssh
해야 합니다 .sudo passwd foobar
ssh
# /etc/sudoers.d/sudo-group
%sudo ALL=(ALL) ALL
# /etc/sudoers.d/change-own-passwd
foobar ALL = NOPASSWD: /usr/bin/passwd foobar
그러나 사용자에게는 여전히 비밀번호를 묻는 메시지가 표시됩니다.
$ which passwd
/usr/bin/passwd
$ sudo -ll
User foobar may run the following commands on bizbazz:
Sudoers entry:
RunAsUsers: root
Options: !authenticate
Commands:
/usr/bin/passwd foobar
Sudoers entry:
RunAsUsers: ALL
Commands:
ALL
$ sudo passwd foobar
[sudo] password for foobar: ^C
sudo: a password is required
답변1
SUDOERS 파일 형식
...
여러 항목이 사용자와 일치하면 순차적으로 적용됩니다. 일치하는 항목이 여러 개인 경우 마지막 항목이 사용됩니다(가장 구체적인 항목일 필요는 없음).
~에서man 5 sudoers
따라서 규칙을 적용할 때는 순서가 중요합니다. 이름을 사전식( 000-sudo-group
및 100-change-own-passwd
)으로 변경하면 문제가 해결됩니다.