![如何在没有 sudo 的情况下运行 /usr/bin/Xorg?](https://linux22.com/image/96103/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%B2%A1%E6%9C%89%20sudo%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%BF%90%E8%A1%8C%20%2Fusr%2Fbin%2FXorg%EF%BC%9F.png)
这个问题是关于/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 实现此目的,您可以将Xorg
from的组更改root
为input
,设置 setgit 位,并将您的用户添加到组中video
:
chown root:input /usr/lib/xorg/Xorg
chmod g+s /usr/lib/xorg/Xorg
adduser YOURUSERNAME video
(相反,您可以将您的用户添加到 和video
,input
但不鼓励这样做。组中的用户input
可以监视其他用户的输入。例如,X 中的 GUI 可能会监视在 console/tty 中输入的 root 密码。)