我试图授予用户更改其他用户密码的权限,但不包括 root 的密码。
我已经编辑了 /etc/sudoers 文件visudo
并附加了以下行:
myuser ALL=/usr/bin/passwd
现在可以了,用户“myuser”可以通过命令更改密码
sudo passwd otheruser
,但他们也可以更改root的密码!
如何排除更改 root 密码的选项?
答案1
这sudoers 手册页(v1.9.1链接)实际上有一个例子:
pete HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd *root*
用户 pete 可以更改 HPPA 计算机上除 root 之外的任何人的密码。由于命令行参数作为单个连接字符串进行匹配,因此“*”通配符将匹配多个单词。此示例假设 passwd(1) 不在命令行上采用多个用户名。请注意,在 GNU 系统上,passwd(1) 的选项可以在 user 参数之后指定。因此,该规则也将允许:
passwd username --expire
这可能是不可取的。
您可以根据您的情况调整该示例:
myuser ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd *root*
...注意手册中的警告。