xauth 无法写入我的 .Xauthority 文件

Sur*_*a R 4 arch-linux x-server xauth

我使用窗口管理器 BSPWM(所以没有 DE)运行 Arch Linux,最近我的.Xauthority文件出现问题。

我无法再启动我的 X 服务器,因为它无法写入我的.Xauthority文件。当我尝试删除我的.Xauthority文件以希望在我重新登录时为我创建一个新的.Xauthority文件时,没有创建一个新的.Xauthority文件。

我已经尝试手动重新创建.Xauthority文件并更改其权限,但它仍然没有工作。此外,我的主目录中有一个.Xauthority-n文件,我不确定它的作用 - 但是删除后,它会在我重新登录时重新出现。

.Xauthority-n.Xauthority文件存在时,在 startx 上它给了我这个错误:

xauth: unable to write authority file ~/.Xauthority-n
Run Code Online (Sandbox Code Playgroud)

我不确定为什么它不尝试使用常规的.Xauthority文件。

如何让 xauth 能够写入我的 .Xauthority 文件?.Xauthority-n 文件的目的是什么,我该如何摆脱它?

tel*_*coM 5

xauth更新.Xauthority文件时,它最初会将它的新版本写为.Xauthority-n. 一旦文件被完全写入,它就会将其移动/重命名为.Xauthority,同时导致旧版本的文件被删除。

这依赖于这样一个事实,即在单个符合 POSIX 的文件系统中的重命名/移动操作应该是原子的:操作永远不会中途停止,但它会成功完成或旧文件将保持不变。

如果该xauth命令发现该.Xauthority-n文件已经存在,则认为这意味着另一个xauth命令实例已经在进行一些更改,并且拒绝执行任何操作。因此,这也可以保护文件免受由于xauth同一用户同时运行多个实例而导致的损坏。

.Xauthority-n文件保留在您的主目录中的事实表明,xauth由于某种原因,在执行重命名/移动操作之前,较早的副本已在操作中终止。

你应该注销X GUI的,然后登录远程或使用基于文本的虚拟控制台,然后删除这两个 .Xauthority .Xauthority-n。之后,GUI 登录应该可以正常工作,除非您有其他问题阻止系统.Xauthority在您的主目录中创建/覆盖文件。