对于两个重叠的 sudo 规则,是否使用更严格的规则?

对于两个重叠的 sudo 规则,是否使用更严格的规则?

我在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-group100-change-own-passwd)可以解决此问题。

相关内容