我向 sudoers 添加了一个用户,他可以执行以下操作:
$ sudo -ll|grep passwd
!/bin/passwd root
!/bin/passwd bin
!/bin/passwd daemon
!/bin/passwd adm
!/bin/passwd lp
!/bin/passwd sync
!/bin/passwd shutdown
!/bin/passwd halt
!/bin/passwd mail
!/bin/passwd uucp
!/bin/passwd operator
!/bin/passwd games
!/bin/passwd gopher
!/bin/passwd ftp
!/bin/passwd nobody
!/bin/passwd dbus
!/bin/passwd vcsa
!/bin/passwd abrt
!/bin/passwd haldaemon
!/bin/passwd ntp
!/bin/passwd saslauth
!/bin/passwd postfix
!/bin/passwd sshd
!/bin/passwd nscd
!/bin/passwd nagios
!/bin/passwd nrpe
!/bin/passwd tcpdump
/bin/passwd *
但这样的 sudoer 并不能阻止该用户更改 root 的密码:
$ sudo /bin/passwd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
知道为什么“!/bin/passwd root”在这里不起作用吗?
更新(和解决方案):
这解决了我的问题:
$ sudo -ll|grep passwd
/bin/passwd *
!/bin/passwd -*
!/bin/passwd root
!/bin/passwd root -*
!/bin/passwd bin
!/bin/passwd bin -*
!/bin/passwd daemon
!/bin/passwd daemon -*
!/bin/passwd adm
!/bin/passwd adm -*
!/bin/passwd lp
!/bin/passwd lp -*
!/bin/passwd sync
!/bin/passwd sync -*
!/bin/passwd shutdown
!/bin/passwd shutdown -*
!/bin/passwd halt
!/bin/passwd halt -*
!/bin/passwd mail
!/bin/passwd mail -*
!/bin/passwd uucp
!/bin/passwd uucp -*
!/bin/passwd operator
!/bin/passwd operator -*
!/bin/passwd games
!/bin/passwd games -*
!/bin/passwd gopher
!/bin/passwd gopher -*
!/bin/passwd ftp
!/bin/passwd ftp -*
!/bin/passwd nobody
!/bin/passwd nobody -*
!/bin/passwd dbus
!/bin/passwd dbus -*
!/bin/passwd vcsa
!/bin/passwd vcsa -*
!/bin/passwd abrt
!/bin/passwd abrt -*
!/bin/passwd haldaemon
!/bin/passwd haldaemon -*
!/bin/passwd ntp
!/bin/passwd ntp -*
!/bin/passwd saslauth
!/bin/passwd saslauth -*
!/bin/passwd postfix
!/bin/passwd postfix -*
!/bin/passwd sshd
!/bin/passwd sshd -*
!/bin/passwd nscd
!/bin/passwd nscd -*
!/bin/passwd nagios
!/bin/passwd nagios -*
!/bin/passwd nrpe
!/bin/passwd nrpe -*
!/bin/passwd tcpdump
!/bin/passwd tcpdump -*