如何在没有 sudo 的情况下运行 /usr/bin/Xorg?

如何在没有 sudo 的情况下运行 /usr/bin/Xorg?

这个问题是关于/usr/bin/Xorg直接在Ubuntu 14.04上执行的。

我知道存在 Xdummy,但我无法使虚拟驱动程序与 nvidia GPU 一起正常工作,因此它不是一个选项。

我复制了系统范围的xorg.conf/usr/lib/xorg/modules,并对其进行了一些修改。 (ModulePath我的xorg.conf也有指定)

以 root 身份运行以下命令可以正常工作:

Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./16.log -config ./xorg.conf :16

但如果我以非 root 用户身份执行此操作(日志文件权限正常),则会出现此错误:

(EE) 
Fatal server error:
(EE) xf86OpenConsole: Cannot open virtual console 9 (Permission denied)
(EE) 
(EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "./16.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.

你能帮我在没有 sudo 的情况下运行 Xorg 吗?

答案1

要确定谁可以运行 X,请对其进行配置

dpkg-reconfigure x11-common

共有三个选项:仅限 root、仅限控制台用户或任何人。该条目位于/etc/X11/Xwrapper.config.


从 Debian 9 和 Ubuntu 16.04 开始,该文件不存在。安装后xserver-xorg-legacy,该文件重新出现,其内容必须更改为:

allowed_users=console

到:

allowed_users=anybody
needs_root_rights=yes

还需要指定启动X时使用的虚拟终端,否则可能会出现错误。例如:

Xorg :8 vt8

答案2

X 需要访问输入设备(鼠标和键盘)以及显示器和显卡以进行输出。

要为非 root X 实现此目的,您可以将Xorgfrom的组更改rootinput,设置 setgit 位,并将您的用户添加到组中video

chown root:input /usr/lib/xorg/Xorg
chmod g+s /usr/lib/xorg/Xorg
adduser YOURUSERNAME video

(相反,您可以将您的用户添加到 和videoinput但不鼓励这样做。组中的用户input可以监视其他用户的输入。例如,X 中的 GUI 可能会监视在 console/tty 中输入的 root 密码。)

相关内容