sudo 不接受密码

sudo 不接受密码

可能在使用设置更改主机名或删除 cryptswap 之后,但我也更新了/etc/hosts

127.0.0.1 localhost
::1 localhost
127.0.1.1 pop2104.localdomain     pop2104

没有错误消息,它只是一次又一次询问我的密码(就像密码错误一样)。

# from journalctl -r
Nov 08 13:07:34 pop2104 sudo[8413]: pam_unix(sudo:auth): auth could not identify password for [asd]
Nov 08 13:07:34 pop2104 sudo[8413]: pam_unix(sudo:auth): conversation failed

Nov 08 13:09:14 pop2104 sudo[9093]: pam_unix(sudo:auth): Couldn't open /etc/securetty: No such file or directory

# from /etc/passwd
asd:x:1000:1000:ASD:/home/asd:/usr/bin/zsh

我确信密码是正确的,因为解锁钥匙圈时它工作正常。

我使用的是 PopOS 21.04。

答案1

格式/etc/hosts必须为:

127.0.0.1 localhost
::1 localhost
127.0.1.1 pop2104.localdomain     pop2104

没有协议,没有括号

答案2

错误消息表明 PAM 身份验证模块pam_unix.so“无法识别用户的密码”。这可能意味着您的/etc/shadow内容已被某种程度地损坏。

尝试pwck以 root 身份运行。它通常会输出一些有关某些系统帐户没有有效主目录的消息:这是正常的,可以忽略。但它是否说明了有关用户的任何信息asd

另一条错误消息表明/etc/securetty缺少。一些 Linux 发行版认为/etc/securetty不再有用,而其他发行版仍然拥有它。显然 PopOS 期望它在那里。

如果它在没有明显原因的情况下消失,那么您的系统可能已被(很糟糕)黑客攻击:入侵者可能一直在尝试使用某种漏洞来删除/etc/securetty并注入额外的条目/etc/shadow,但似乎推测的注入尝试可能/etc/shadow已经如果它破坏了文件格式,则不太成功。

答案3

重启后,booting rescuedrop到rootuser,然后passwd asd就可以sudo了。

相关内容