lor*_*age 4 root xorg not-root-user x-server
这是一个单线:有没有办法/命令来检查 X 服务器是以 root 还是以用户身份运行?
这应该是一个单行但唉......我最近升级了我的 Arch Linux 机器。升级后,我收到通知,X
现在可以无根运行。我查看了官方 Arch Linux 页面,它指出:
X 现在在 systemd-logind 的帮助下是无根的 [...] [1]
这让我对如何检查是否X
无根运行感兴趣。如何才能做到这一点?
有几种方法可以使用ps
;输出用户 ID (UID) 。一个简单的方法是-f
:
ps -fC X
Run Code Online (Sandbox Code Playgroud)
将为您提供所有正在运行的 X 服务器的信息(可能不止一个)。
这假定可执行文件被调用X
——如果没有这样的过程,你将不得不针对其他东西。由于几乎可以肯定它至少有大写字母 X(例如,Xorg
, X11
),另一种方法是通过 grep 过滤:
ps -o uid,comm -A | grep X
Run Code Online (Sandbox Code Playgroud)
这将删除列标题,但 UID 是左侧的数字。如果是0
,则该进程正在运行 root。如果没有任何结果,请尝试ps -fA | grep X
;这个涉及更多的混乱。
最后,如果X
名称中没有带大写的进程,请尝试x
; 您至少可以找到用于控制它的命令,例如startx
或xinit
。您也可以尝试dm
,因为显示管理器通常在其名称中包含此内容(gdm
等)。但是,这些实际上都不是 X 服务器,尽管xinit
启动了服务器,但服务器可执行文件通常设置了 setuid 位,这意味着即使xinit
具有非特权 UID,X 仍将以 root 身份运行。