破坏 xauth,陷入登录循环,没有设置 $DISPLAY 环境

破坏 xauth,陷入登录循环,没有设置 $DISPLAY 环境

昨天我摆弄了 Xauth,因为在我的 Steam 客户端日志中有一些关于无法使用 X 进行身份验证的错误:

Could not connect to X session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and <garbage>

我无法解决这个问题,但我设法破坏了我的登录过程。\o/

当我输入密码时,它会尝试切换到我的用户会话,然后返回到登录屏幕。

我发现了一个解决方法,即切换到终端并执行以下操作:

> DISPLAY=:0; export DISPLAY
> xauth list
> xauth add $DISPLAY . <hexkey from xauth list>

当我切换回 GUI 并登录时,它就可以正常工作了。

值得注意的是,当我执行终端操作时 DISPLAY 没有设置,我认为这就是问题所在。我不记得是否更改了任何内容来删除 DISPLAY 环境,我认为它应该由 X 设置,但现在不再是这样了。我不确定我是否需要这样做,xauth add ...或者仅设置 DISPLAY 环境是否已经足够 - 必须尝试一下。

在我做任何事情之前的输出xauth list是这样的:

myhost/unix:0  MIT-MAGIC-COOKIE  2b3996b81997d587e6f7f4348a11df3d

我登录后,它看起来像这样:

myhost/unix:0  MIT-MAGIC-COOKIE-1  c71526c38a544cb15dc15875a4992486
myhost/unix:0  MIT-MAGIC-COOKIE  2b3996b81997d587e6f7f4348a11df3d

我使用 Xfce 作为桌面并使用 lightdm 作为登录管理器,我的系统是 Xubuntu 19.10。

知道如何修复这个问题吗?:| 非常感谢!

编辑:

根据我的 bash_history,这些是我执行过的命令:

ls ~/.Xauthority -la
xauth list
echo $DISPLAY
xauth list
xauth add $DISPLAY - `mcookie`
xauth list
mcookie
xauth --help
xauth remove $DISPLAY - `mcookie`
xauth list
xauth add $DISPLAY "MIT-MAGIC-COOKIE" `mcookie`
xauth list
xauth list|grep `uname -n`
xauth extract - $ DISPLAY | sudo -iu steam xauth merge -

.Xauthority属于我的用户和组,并且具有权限 0600。所有命令均以我的用户身份执行,而不是 root 用户。我思考因为我添加了 MIT-MAGIC-COOKIE-1,所以它与我的解决方法兼容?

答案1

根据steeldriver的建议,解决方案是删除混乱的~/.Xauthority文件。删除后重启,一切恢复正常。

相关内容