![为什么 .Xauthority 不需要由 root 帐户拥有才能通过登录?](https://linux22.com/image/847803/%E4%B8%BA%E4%BB%80%E4%B9%88%20.Xauthority%20%E4%B8%8D%E9%9C%80%E8%A6%81%E7%94%B1%20root%20%E5%B8%90%E6%88%B7%E6%8B%A5%E6%9C%89%E6%89%8D%E8%83%BD%E9%80%9A%E8%BF%87%E7%99%BB%E5%BD%95%EF%BC%9F.png)
我刚刚遇到了同样的问题这里,并使用第一个答案(akonsu 的答案)中所述的内容解决了该问题。
但是,我很想知道为什么~/.Xauthority
不需要由 root 帐户拥有才能通过普通用户登录(换句话说:为什么这是登录失败的原因),以及 - 您是否假设 akonsu 是如何找到解决方案的?
答案1
这是 X 服务器用于验证客户端程序的机制的一部分。
基于 cookie 的授权方法基于选择一个魔术 cookie(任意数据)并在服务器启动时将其传递给服务器;每个可以证明了解该 cookie 的客户端都被授权连接到服务器。
这些 cookie 由单独的程序创建,默认情况下存储在用户主目录中的 .Xauthority 文件中。因此,客户端在本地计算机上运行的每个程序都可以访问此文件,从而访问服务器授权所需的 cookie。如果用户想从网络上的另一台计算机启动应用程序,则必须将 cookie 复制到该另一台计算机。
当 ~/.Xauthority 由 root 帐户拥有时,正常的 X 客户端程序无法读取它,也不会通过 X 服务器的身份验证。这通常会导致崩溃。