有权管理除 root 之外的其他用户密码的用户

有权管理除 root 之外的其他用户密码的用户

我试图授予用户更改其他用户密码的权限,但不包括 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*

...注意手册中的警告。

相关内容