如何以非 root 身份运行 startx?

如何以非 root 身份运行 startx?

最近,我从 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 帐户,否则我无法运行。

答案1

首先澄清一点,X就是不是A窗口管理器, 它是一个窗口系统

现在,该~/.Xauthority文件只是存储当前用户会话的标识凭据的位置X,它是系统需要确定您是否有权使用当前X会话时读取的文件。

您永远不应该从另一个帐户复制现有文件,该文件应始终属于正在运行的用户X,并在您启动新会话时自动创建X。因此,只需删除您拥有的那个,然后startx再次运行,一切都应该正常工作:

$ rm ~/.Xauthority; startx

答案2

我认为一个问题是人们以 root 身份登录,然后使用 切换用户su -l username,这会在 root 下创建/生成一个由“用户名”拥有的子进程。 X 将使用.Xauthority顶级进程(在本例中为 root)的“用户名”没有使用权限。

将显示错误:

Cannot open virtual console 1 (Permission denied).

要解决这个问题,只需运行即可login,而不是su启动一个新的 shell 作为顶级进程。

答案3

我在配备两张显卡的 Lenovo IdeaPad 上遇到了这个问题,一张来自 Intel,另一张来自 Nvidia。

导致的错误包括startx这一行:

驱动程序 0 kde Plasma 的 addscreen/screeninit 失败

是解决方案:

  1. /etc/mkinitcpio.conf通过添加进行更改MODULES=(nouveau)
  2. sudo mkinitcpio -p linux
  3. 重启

相关内容