我偶然发现了一个登录问题,我猜想这一定是由于我的 ubuntu 安装出现故障造成的。我在任何地方都无法识别我的登录密码(我也没有忘记),无论是在 shell 中,是在 gnome 欢迎屏幕中,还是在屏幕保护程序后的解锁窗口中。我认为重置密码可以解决这个问题,于是我重新启动,进入恢复控制台,打开 root shell,运行“passwd myuser”,输入一个新的简单密码,看似成功了,但如果我立即运行“login myuser”或者重新启动并转到欢迎屏幕,它就会再次显示密码错误。如果我在 root shell 上执行“sudo -i -u myuser”,我可以执行“passwd myuser”,然后当它询问我以前的密码时,我发现只有这一次我的密码才能被识别(我可以设置一个新密码,但和以前一样,我从来没有登录过以识别它)。
我发现让机器再次可用的唯一方法是从 root shell 启动 gnome,并在用户和组中配置 myuser 在启动时不应被要求输入密码。我仍然无法运行任何需要我执行 sudo 的操作,因为我输入的密码不正确。
我该怎么做才能使身份验证再次起作用?
我的 PAM 很可能已更改,因为它是经过调整的发行版,符合公司政策。当我尝试登录时,auth.log 中不断出现以下错误:
PAM 无法 dlopen(/lib/security/new_authtok_reqd=2):/lib/security/new_authtok_reqd=2:无法打开共享对象文件:没有此文件或目录
PAM 添加错误模块:/lib/security/new_authtok_reqd=2
PAM 无法 dlopen(/lib/security/default=ignore]):/lib/security/default=ignore]:无法打开共享对象文件:没有此文件或目录
PAM 添加错误模块:/lib/security/default=ignore]
答案1
这是一些通用建议。@ilcavero,如果你在问题中添加信息并且我有更具体的建议,我会编辑我的答案。
密码无法识别的一个常见原因是密码提示时的键盘布局不符合您的预期。但如果您尝试
login myuser
在与 相同的环境中执行此操作passwd myuser
,则这不是您的问题。“登录被拒绝”消息总是简短的,以免向攻击者提供太多信息。日志文件中可能还有更多有用的信息,这些信息只有系统管理员才能看到(但在默认的 Ubuntu 安装中,如果您是
sudo
“管理员”用户,则无需管理员身份即可阅读这些文件)。检查/var/log/auth.log
您尝试登录时出现的内容。登录权限通过 PAM 控制,它通过 中的文件进行配置
/etc/pam.d
。特别是,/etc/pam.d/common-auth
大多数登录方法都使用 。此文件是否已从其默认内容更改?您是否记得安装或重新配置任何可能相关的东西(例如密码强度检查器)?
问题只出现在您的用户身上还是所有用户都存在问题?如果您创建了一个测试用户,他可以登录吗?
如果文件
/etc/nologin
存在,请将其删除。(我想这不是你的问题,因为这个文件甚至适用于无密码登录,但不适用于 sudo。)