为什么我的 sudo 只要求输入一次密码但评估三次?

为什么我的 sudo 只要求输入一次密码但评估三次?
$ sudo some_command
Password:
Sorry, try again.
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts
$

这是当我在 sudo 命令中输入错误密码时 shell 打印的内容。

为什么会发生这种情况?


$ sudo -V
Sudo version 1.6.7p5
$ uname -a
Linux lazer 2.6.18-164.0.0.0.1.el5xen #1 SMP Thu Sep 3 00:34:43 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
$ 

答案1

不久前,我在 PAM 配置中试验了 RSA SecurID 模块,并成功地为自己创建了这种行为,因此我知道一种方法来复制您所看到的内容。

PAM_AUTH_ERR如果您有一个 pam 模块作为唯一配置的required模块或与requisite其他模块一样(或在具有类似效果的许多其他可能的配置中)失败(返回),它将立即返回失败sudo,然后重试两次,连续三次失败。 (如果出于某种您愿意的原因,您可以将其配置passwd_tries/etc/sudoers3 以外的值,以便获得更多或更少的失败。)

这不会首先提示您输入密码,但肯定有一些 PAM 配置可以做到这一点,在第一次失败后将您锁定,然后在下一次尝试时快速返回失败。

因此,我将继续猜测您要么搞乱了 PAM 配置,要么该配置指出的某些内容以不会引入延迟的方式失败(无论正确与否)。 (“正常”延迟通常实际上是由pam_unix.so模块引入的,除非您给它nodelay参数。)

重新创建此内容的一种简单方法是将

auth       requisite      pam_deny.so

auth就在 中任何现有行的上方/etc/pam.d/sudo。再说一遍,这是立即失败,而不是提示一次然后失败,但这应该让您走上特定配置的轨道。 (据我了解,如果您提供正确的密码,您的设置就可以正常工作,因此我会研究您配置的 PAM 模块的故障行为。)

答案2

这可能很愚蠢,但是你的键盘工作正常吗?您可以按三次 Enter 键。

类似的事情也发生在我身上:)

答案3

尝试sudo -K删除时间戳。还要查看时间戳目录(debian 系统上的 /var/run/sudo),也许那里出了问题。

相关内容