为什么 .Xauthority 不需要由 root 帐户拥有才能通过登录?

为什么 .Xauthority 不需要由 root 帐户拥有才能通过登录?

我刚刚遇到了同样的问题这里,并使用第一个答案(akonsu 的答案)中所述的内容解决了该问题。

但是,我很想知道为什么~/.Xauthority不需要由 root 帐户拥有才能通过普通用户登录(换句话说:为什么这是登录失败的原因),以及 - 您是否假设 akonsu 是如何找到解决方案的?

答案1

这是 X 服务器用于验证客户端程序的机制的一部分。

參考X Window 授权

基于 cookie 的授权方法基于选择一个魔术 cookie(任意数据)并在服务器启动时将其传递给服务器;每个可以证明了解该 cookie 的客户端都被授权连接到服务器。

这些 cookie 由单独的程序创建,默认情况下存储在用户主目录中的 .Xauthority 文件中。因此,客户端在本地计算机上运行的每个程序都可以访问此文件,从而访问服务器授权所需的 cookie。如果用户想从网络上的另一台计算机启动应用程序,则必须将 cookie 复制到该另一台计算机。

当 ~/.Xauthority 由 root 帐户拥有时,正常的 X 客户端程序无法读取它,也不会通过 X 服务器的身份验证。这通常会导致崩溃。

相关内容