如何以非root身份运行startx?


10

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


复制文件存在安全风险。您更改了其权限(所有权),而不是其权限。
ctrl-alt-delor

(重新)移动〜/ .Xauthority,然后重试startx。它行得通吗?如果不是,确切的错误消息是什么?
Adaephon 2013年

Answers:


11

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

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

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

$ rm ~/.Xauthority; startx

Tredon,即使删除了.Xauthority文件也是如此。我无法凝视。它继续显示相同的错误。
哈比2013年

@Habi,您需要确保没有正在运行的X会话,然后删除文件,然后startx再次运行。
terdon

现在,X运行,但是显示另一条消息:调用Inusertemp失败(临时目录已满?)。检查您的安装。
哈比

@Habi啊,很好,这是进度:)。请为此提出另一个问题,因为这是完全不同的问题。在新问题中,向我们显示输出,df -h并确保重新启动后此问题仍然存在。
terdon

Tredon,我会考虑这一进展。:)。顺便说一句,谢谢。
哈比

3

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

该错误将显示:

Cannot open virtual console 1 (Permission denied).

要解决此问题,只需运行即可,login而不是su启动一个新的Shell作为首要过程。


0

我在带有两张图形卡的Lenovo IdeaPad上遇到了此问题,一张来自英特尔,另一张来自Nvidia。

startx以下行引起的错误:

对于驱动程序0 kde等离子,addscreen / screeninit失败

是解决方案:

  1. /etc/mkinitcpio.conf通过添加更改MODULES=(nouveau)
  2. sudo mkinitcpio -p linux
  3. 重启
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.