可能在使用设置更改主机名或删除 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 rescue
drop到root
user,然后passwd asd
就可以sudo了。