最近,我从 Ubuntu 切换到 Arch Linux。我已经安装了 X11 作为我的窗口系统和 KDE 作为我的桌面环境。我已经为单独的分区/home
,/var
,/
和/boot
他们都安装在系统启动时。当我运行时startx
,将显示以下消息。
xauth:timeout in locking authority file /home/hello/.Xauthority
不小心,我删除了那个文件。所以,我从/root
. 我已经使用以下代码更改了它的权限:
# chown hello:users ~/.Xauthority
即使在此之后,startx
除非我使用 root 帐户,否则我无法运行。
ter*_*don 12
现在,该~/.Xauthority
文件只是X
存储当前用户会话的标识凭据的地方,它是系统需要确定您是否有权使用当前X
会话时读取的文件。
您永远不应该从另一个帐户复制现有文件,该文件应始终属于正在运行的用户,X
并在您开始新X
会话时自动创建。因此,只需删除您拥有的那个,然后startx
再次运行,一切都会正常进行:
$ rm ~/.Xauthority; startx
Run Code Online (Sandbox Code Playgroud)
我认为一个问题是人们以 root 身份登录,然后使用 切换用户su -l username
,这会在“用户名”拥有的 root 下创建/生成一个子进程。X 将使用.Xauthority
顶级进程(在本例中为 root)的 ,而“用户名”没有使用权限。
将显示错误:
Cannot open virtual console 1 (Permission denied).
Run Code Online (Sandbox Code Playgroud)
要解决这个问题,只需运行login
而不是su
启动一个新的 shell 作为顶级进程。