我希望所有用户都能够sudo
在不输入密码的情况下查看他们的权限。
有什么方法可以允许这样做而不添加ALL ALL=(ALL) NOPASSWD: /usr/bin/sudo -l
to/etc/sudoers
吗?
bob@cad50ee0931e:/$ sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for bob:
答案1
sudoers
文件 ( )的文档man sudoers
提供了这些建议
默认情况下,
sudo
要求用户在运行命令之前对自己进行身份验证。 [...]如果该NOPASSWD
标签应用于任何当前主机上用户的条目中,他或她将能够在sudo -l
没有密码的情况下运行。此行为可以通过 [...] 选项覆盖listpw
。
和
listpw
sudo
此选项控制当用户使用该选项运行时何时需要密码-l
。它有以下可能的值:
all
sudoers
-当前主机的所有用户条目都必须NOPASSWD
设置标志以避免输入密码always
- 用户必须始终输入密码才能使用该-l
选项。any
sudoers
-当前主机的用户条目中至少一项必须NOPASSWD
设置标志以避免输入密码。never
- 用户无需输入密码即可使用该-l
选项。
假设您想避免NOPASSWD
,您可以设置listpw=never
:
Defaults listpw=never
用于visudo
编辑和检查文件sudoers
(提示:EDITOR=nano visudo
如果您想用于nano
编辑sudoers file instead of
vi`,请使用)。更好的是,在测试时保持另一个 root shell 打开,这样您就不会失去访问权限。
不幸的是,似乎中的一个错误sudo
,即已在 1.8.28 中修复,可能会忽略该listpw=never
设置。在这种情况下你一定不使用listpw=never
,而是创建一个无意义的条目,例如这样
ALL ALL=(ALL) NOPASSWD: /bin/false
最终结果应该是sudo -l
会触发任何条目都有NOPASSWD
规则,你就会达到你的要求。