`listpw` 默认选项不适用于 sudo 1.8.24

`listpw` 默认选项不适用于 sudo 1.8.24

我在 arch linux 上使用sudo1.8.24(只是操作系统附带的默认版本),并且遇到了问题,它提示我输入密码,只是为了列出命令是否有效。这是我的/etc/sudoers文件:

Defaults rootpw
Defaults listpw=never
%wheel ALL=(ALL) ALL
%wheel ALL=(ALL) NOPASSWD: /bin/false ""

我是轮组的该文档让我相信这listpw=never意味着我在运行时永远不会被提示输入密码sudo -l,而且无论如何,如果我不需要密码,默认值应该是允许它/bin/false

不幸的是,当我运行时sudo -l /bin/false,它提示我输入自己的密码。注意sudo /bin/false不需要密码,其他sudo任何东西都会提示输入 root 密码,但sudo -l任何东西都会提示输入我的密码。如果我已经输入 root 密码以 root 身份运行某些程序,这会特别烦人,因为在运行时我仍然需要在两秒后输入自己的密码sudo -l。 (这是脚本经常使用的模式,它在运行之前检查您是否有权限sudo,导致我被提示输入密码,即使在sudo不请求密码的情况下也能成功。)

更新

当我运行时sudo -l,系统会提示我输入密码,然后 sudo 打印:

Matching Defaults entries for user on machine:
    rootpw, listpw=never, timestamp_timeout=60, env_keep+=HOME

User user may run the following commands on machine:
    (ALL) ALL
    (ALL) NOPASSWD: /bin/false

另外,我已经升级到 sudo 1.8.25,但仍然看到问题,所以我基本上放弃了,并得出结论,这是 sudo 中的一个错误。

答案1

FWIW 我也可以在 1.8.27 上重现这个,但它是已于 1.8.28 修复

如果您删除该listpw=never条目,您的ALL ALL=(ALL) NOPASSWD: /usr/bin/false线路将触发接受规则并sudo -l停止提示输入密码。

相关内容