Xorg

如何確定 X 伺服器是否以 root 權限執行

  • January 17, 2021

這是一個單線:有沒有一種方法/命令來檢查 X 伺服器是作為 root 執行還是作為使用者執行?


這應該是單行的,但唉……我最近升級了我的 Arch Linux 機器。升級後,我被告知X現在可以無根執行。我查看了 Arch Linux 官方頁面,上面寫著:

在 systemd-logind 的幫助下,X 現在是無根的

$$ … $$ $$ 1 $$

這讓我對如何檢查是否X無根執行感興趣。如何才能做到這一點?

有幾種方法可以使用 ; 輸出使用者 ID (UID) ps。一個簡單的方法是-f

ps -fC X

將為您提供所有正在執行的 X 伺服器的資訊(可能不止一個)。

這假定呼叫了執行檔X——如果沒有這樣的過程,你將不得不針對其他東西。由於幾乎可以肯定它至少包含大寫字母 X(例如 , XorgX11,因此另一種方法是通過 grep 進行過濾:

ps -o uid,comm -A | grep X

這將刪除列標題,但 UID 是左側的數字。如果是0,則該程序正在以 root 身份執行。如果沒有任何結果,請嘗試ps -fA | grep X;這涉及更多的混亂。

最後,如果沒有X名稱中帶有大寫字母的程序,請嘗試x;您至少可以找到用於控制它的命令,例如startxxinit。您也可以嘗試dm,因為顯示管理器通常在他們的名字中有這個(gdm等)。然而,這些都不是 X 伺服器,雖然xinit啟動了伺服器,但伺服器執行檔通常設置了 setuid 位,這意味著即使xinit有一個非特權 UID,X 仍然會以 root 身份執行

引用自:https://unix.stackexchange.com/questions/147409