我已经将屏幕保护程序配置为在一段时间后锁定桌面;有时,例如当我离开办公桌时,我更喜欢使用标题栏“锁定/切换帐户......”功能自己锁定屏幕。
当我尝试再次登录时,我输入了密码,但密码被标记为“无效”。
作为一种解决方法,我必须使用鼠标转到标题栏中的“切换用户...”菜单,单击它,然后等待另一个登录页面出现,该页面与屏幕保护程序锁定页面非常相似。 (它还列出了其他可供选择的用户名)
我在那里输入相同的密码,并且被接受,我登录了,并且出现了 Unity 桌面。
在控制台登录也有效。
知道如何诊断和解决这个问题吗?
Linux xxx 3.19.0-28-通用#30-Ubuntu SMP 2015 年 8 月 31 日星期一 15:52:51 UTC x86_64 x86_64 x86_64 GNU/Linux
unity 7.3.2
Compiz 0.9.12.1
kern.log 和 syslog 中似乎没有什么有趣的东西,但这里有一些来自 /var/log/auth.log 的内容
Sep 17 17:20:29 xxx lightdm: pam_kwallet(lightdm-greeter:setcred): pam_sm_setcred
Sep 17 17:20:29 xxx lightdm: pam_unix(lightdm-greeter:session): session opened for user lightdm by (uid=0)
Sep 17 17:20:29 xxx systemd-logind[843]: New session c13 of user lightdm.
Sep 17 17:20:29 xxx lightdm: pam_ck_connector(lightdm-greeter:session): nox11 mode, ignoring PAM_TTY :2
Sep 17 17:20:29 xxx lightdm: pam_kwallet(lightdm-greeter:session): pam_sm_open_session
Sep 17 17:20:29 xxx lightdm: pam_kwallet(lightdm-greeter:session): pam_kwallet: open_session called without kwallet_key
Sep 17 17:20:30 xxx lightdm: pam_succeed_if(lightdm:auth): requirement "user ingroup nopasswdlogin" not met by user "knb"
Sep 17 17:20:33 xxx CRON[37168]: pam_unix(cron:session): session closed for user munin
Sep 17 17:21:10 xxx lightdm: pam_kwallet(lightdm:auth): pam_sm_authenticate
Sep 17 17:21:10 xxx lightdm: pam_kwallet(lightdm:setcred): pam_sm_setcred
Sep 17 17:21:10 xxx lightdm: pam_unix(lightdm-greeter:session): session closed for user lightdm
Sep 17 17:21:10 xxx lightdm: pam_kwallet(lightdm-greeter:session): pam_sm_close_session
Sep 17 17:21:10 xxx lightdm: pam_kwallet(lightdm-greeter:setcred): pam_sm_setcred
以下是我必须浏览的一些屏幕图片:
这里我输入了常规密码,但没有成功。它仅包含 ASCII 字符。
切换用户...(选择我自己的帐户,我不需要切换到另一个帐户)。
这有效。
编辑:就在 +150 赏金截止日期之前
我自己能够解决这个问题(在遵循了迄今为止所有~5 个答案中的所有提示和链接之后)
我必须在文件中注释掉这一行/etc/pam.d/lightdm
:
#auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
我认为原因是(几个月前,当我是“唯一”可以物理访问我的电脑的人时)我将自己添加到无需密码即可登录的群组,并在启动/重启后自动登录 lightdn。然后有一天我把它改回来了到“重启后需要登录”,但由于某种原因,之前的所有配置文件中的无登录配置被错误地删除。
现在可以再次登录:-)
关于赏金/“评级”的说明:
第一个回答者说得最接近解决方案,比如“仔细看看 /etc/pam.d 中的内容”。这个答案也是最长、最详尽的。不过,我检查了所有其他答案,认为它们都很有价值,我想,这就是我现在能做的一切。
答案1
理论上,您可以浏览 /etc/pam.d 的内容并与 /var/log/auth.log 的输出进行比较,以查看发生了什么。
如果您不知道,pam.d 中的每个文件都是一个潜在的入口点,用于询问 pam 您是否可以获得权限。在您的例子中是 lightdm。就确定日志中的哪些行来自 pam 文件中的哪些行而言,日志条目相当不言自明。
根据我找到的文档,您应该能够在 pam.d 文件中的行中添加“debug”以在日志中获取额外的信息。
在我的设置中,我使用的是 kde 和 kdm,当我锁定屏幕并尝试解锁(使用错误的密码)时,会出现很多包含 (kdm:auth) 的行,但成功解锁后则没有任何内容。pam.d/kdm 和 pam.d/lightdm 之间几乎没有可比性,这对我来说毫无意义,所以也许您可以尝试交换一些东西,看看问题是否出在 lightdm pam 模块中。
我唯一想到的另一个想法是,你的密码中是否有有趣的符号或字符。如果 lightdm 锁屏框编码不正确,你可能会发现它没有将你输入的内容发送到后端。尝试将你的密码更改为一些基本密码(如 1234)以查看它是否有效,如果有效,那么(显然要将你的密码改回来,但)这可能意味着你的 pam 配置至少没有问题。
抱歉,如果这没有多大帮助,除了考虑将 pam_debug.so 添加到各种 pam 文件中(请参阅http://manpages.ubuntu.com/manpages/hardy/man8/pam_debug.8.html),看看会发生什么,我不确定还能建议什么。
答案2
锁屏以普通用户身份运行身份验证,而用户切换和登录屏幕以 root 身份运行。root 拥有普通用户所没有的特殊权限。
通常当我看到这个问题时,结果都是文件 /etc/shadow 的权限被更改了。应该看起来像这样。
$ ls -l /etc/shadow
-rw-r----- 1 root shadow 2202 Jun 23 12:39 /etc/shadow
如果权限、所有者或群组错误,那就是您的问题。
答案3
也许解决方案桌面登录失败,终端正常适合你吗?
他们删除了 ~/.Xauthority 文件。
似乎与您遇到的问题相同。对于第二个链接,您可能想尝试仅运行命令的最后一部分,而忽略 apt-get purging: sudo pam-auth-update
。
答案4
您的回答(在您的编辑中)并没有真正解决我的问题,但接受的答案和您在编辑中解决问题的方式让我做到了以下几点:
注释以下行
#auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
改变
auth requisite pam_nologin.so
到auth requisite pam_permit.so
附注:更改这些行后无需重新启动,只需在终端中输入以下内容:sudo /usr/sbin/pam-auth-update
然后在不更改菜单中的任何内容的情况下按下enter
键盘即可