Shell

以另一個(非 root)使用者身份執行 GUI 應用程序

  • March 7, 2021

假設我有 2 個使用者帳戶user1user2. 當我以 身份登錄user1,然後切換到user2usingsu時,我可以執行命令行程序,但 GUI 程序會失敗。

例子:

user1@laptop:~$ su - user2
user2@laptop:~$ leafpad ~/somefile.txt
No protocol specified
leafpad: Cannot open display: 

那麼如何執行 GUI 應用程序呢?

他的 vs 他的 -

當成為另一個使用者時,您通常要使用su - user2. 破折號將強制 user2.bash_profile獲取資源。

主機

此外,您需要授予使用者訪問您的顯示器的權限。這由 X 管理。您可以使用該命令xhost +允許其他使用者將 GUI 顯示到 user1 的桌面。

**注意:**執行時,xhost +您需要在屬於 user1 的 shell 中執行它。

$顯示

當您成為 user2 時,您可能需要設置環境變數$DISPLAY

$ export DISPLAY=:0.0

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