Linux

X.org 在 chroot 中沒有套接字?

  • August 16, 2019

我有一個 chroot 設置,我一直在執行圖形應用程序,沒有問題。我所做的唯一設置已設置DISPLAY=:0並且可以正常工作。但是我一直認為 Unix 域套接字用於 X11,所以我不知道為什麼它會起作用。我做了一點探勘,結果證明我是對的。我的 X.org 伺服器使用-nolisten tcp標誌啟動,並且我有一個 unix 域套接字,/tmp/.X11-unix但不知何故,我的 chroot 可以在沒有任何套接字的 X11 顯示器上啟動圖形應用程序。我從來沒有將套接字硬連結到 chroot,事實上它們甚至不在同一個文件系統上。/tmp/.X11-unix在 chroot 上完全是空的。我的 chroot 怎麼可能在 X11 顯示器上啟動圖形應用程序?

X 伺服器還支持抽象套接字,其工作方式與 UNIX 套接字相同,並且具有類似於 UNIX 套接字的路徑名,但路徑名以 NUL 字元開頭。請參閱unix(7)聯機幫助頁中的“抽象”文件。抽象套接字有效地存在於所有文件系統命名空間和 chroot 中;您無需將任何內容連結到 chroot 或命名空間即可使用它。

也許 X 伺服器和客戶端都使用抽象套接字進行通信?使用標準 X 客戶端庫的 X 客戶端將在嘗試使用預設 UNIX 套接字*之前自動嘗試使用抽象套接字。*在 libxcb 中,請參見src /xcb_util.c_xcb_open中的和。_xcb_open_abstract

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