X11
兩個 GUI 應用程序作為同一螢幕上的不同使用者
我以使用者 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
的變數允許連接到單個機器的多個使用者使用不同的物理終端。