Xorg
如何確定 X 伺服器是否以 root 權限執行
這是一個單線:有沒有一種方法/命令來檢查 X 伺服器是作為 root 執行還是作為使用者執行?
這應該是單行的,但唉……我最近升級了我的 Arch Linux 機器。升級後,我被告知
X
現在可以無根執行。我查看了 Arch Linux 官方頁面,上面寫著:在 systemd-logind 的幫助下,X 現在是無根的
$$ … $$ $$ 1 $$
這讓我對如何檢查是否
X
無根執行感興趣。如何才能做到這一點?
有幾種方法可以使用 ; 輸出使用者 ID (UID)
ps
。一個簡單的方法是-f
:ps -fC X
將為您提供所有正在執行的 X 伺服器的資訊(可能不止一個)。
這假定呼叫了執行檔
X
——如果沒有這樣的過程,你將不得不針對其他東西。由於幾乎可以肯定它至少包含大寫字母 X(例如 ,Xorg
)X11
,因此另一種方法是通過 grep 進行過濾:ps -o uid,comm -A | grep X
這將刪除列標題,但 UID 是左側的數字。如果是
0
,則該程序正在以 root 身份執行。如果沒有任何結果,請嘗試ps -fA | grep X
;這涉及更多的混亂。最後,如果沒有
X
名稱中帶有大寫字母的程序,請嘗試x
;您至少可以找到用於控制它的命令,例如startx
或xinit
。您也可以嘗試dm
,因為顯示管理器通常在他們的名字中有這個(gdm
等)。然而,這些都不是 X 伺服器,雖然xinit
啟動了伺服器,但伺服器執行檔通常設置了 setuid 位,這意味著即使xinit
有一個非特權 UID,X 仍然會以 root 身份執行。