最近,我从 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 作为顶级进程。