X11

兩個 GUI 應用程序作為同一螢幕上的不同使用者

  • June 11, 2020

我以使用者 A 的身份登錄。我想以使用者 B 的身份執行 GUI 應用程序。使用者,而不是 root。使用者 B 也是本地的,不是遠端的,我只需要不同的環境變數。我不想執行第二個 X,我希望它們在同一個顯示器上。我對在終端中執行的程序沒有問題,su - ...工作正常。對於圖形,有一條錯誤消息:

Application initialization failed: couldn't connect to display ":0.0"

或者

Gtk-WARNING **: cannot open display: :0.0

有什麼好的方法可以解決嗎?關於正確使用 of 的文章xhost

執行以下命令以授予userBname對顯示的訪問權限:xhost +SI:localuser:userBname您可以使用xhost +授予所有人訪問權限;然而這是不安全的。更好的是按使用者授予訪問權限。本地使用者的 xhosts 條目的正確語法是SI:localuser:username.

然後su userBname, export DISPLAY=:0.0, 最後執行你的 GUI 程序。儘管您之前使用 授予了對顯示的訪問權限,但xhost您還必須設置環境變數DISPLAY,以便程序知道將其圖形輸出放置在何處。為不同的使用者允許不同DISPLAY的變數允許連接到單個機器的多個使用者使用不同的物理終端。

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