如何修复 sudo:帐户验证失败,您的帐户被锁定了吗?

如何修复 sudo:帐户验证失败,您的帐户被锁定了吗?

首先,我想说的是,我正在运行 Manjaro Linux。今天,当我想安装一个新程序时,尝试使用 sudo pacman 时出现以下错误:

sudo: account validation failure, is your account locked?

我搜索了一下,找到了导致此问题的一些可能原因,但我找到的解决方案似乎都无法解决我的问题。到目前为止,我尝试过的方法:

  • 使用 init=/bin/su 启动并运行 /usr/bin/passwd
  • 使用 chage 检查 root 和我的用户帐户的到期日期

另一件可能需要提及的重要事情是,我曾经使用指纹读取器对 sudo 进行身份验证。我使用 fprintd 来执行此操作。我认为这可能是错误的原因,所以我也删除了 fprintd,但这并没有解决问题。有人知道我该如何解决这个问题吗?

答案1

在重命名 WSL 容器的默认用户帐户名后,我在 WSL2+Ubuntu 上遇到了这个错误。登录正在运行,因为我可以wsl从主机运行并通过 bash 到达 Ubuntu 实例内的主目录,但sudo会失败。

由于某种原因,我的usermod命令没有修改/etc/shadow并且它仍然使用旧的帐户名。

oldname:$n$[...]$[...]:18529:0:99999:7:::

解决方案是手动将文件更正为正确的帐户名,然后sudo再次工作。如果您需要 root 访问权限才能在 WSL2 中执行此操作,您可以wsl -u root从主机运行以获取 root shell。

答案2

我通过使用 root 登录来修复此问题:

su -

之后我检查了 /etc/pam.d/sudo,发现我的文件与标准文件不同(例如,它仍然包含一些与指纹读取器有关的变量)。我将其更改为与默认文件完全一样,之后 sudo 又可以正常工作了!

相关内容