私はに属しています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
)に変更すると、問題が解決します。