在同一屏幕上作为不同用户的两个 GUI 应用程序

Mic*_*has 5 su x11

我以用户 A 的身份登录。我想以用户 B 的身份运行 GUI 应用程序。用户,而不是 root。用户 B 也是本地的,不是远程的,我只需要不同的环境变量。我不想运行第二个 X,我希望它们在同一个显示器上。我对在终端中运行的程序没有问题,su - ...工作正常。对于图形,有一条错误消息:

Application initialization failed: couldn't connect to display ":0.0"
Run Code Online (Sandbox Code Playgroud)

或者

Gtk-WARNING **: cannot open display: :0.0
Run Code Online (Sandbox Code Playgroud)

有什么好办法可以解决吗?关于正确使用of之类的文章xhost

jay*_*ren 5

运行以下命令以授予userBname对显示的访问权限:xhost +SI:localuser:userBname您可以使用xhost +授予所有人访问权限;然而这是不安全的。更好的是在每个用户的基础上授予访问权限。本地用户的 xhosts 条目的正确语法是SI:localuser:username.

然后su userBname, export DISPLAY=:0.0, 最后运行您的 GUI 程序。尽管您之前使用 授予了对显示的访问权限,但xhost您还必须设置环境变量,DISPLAY以便程序知道在哪里放置它们的图形输出。允许不同DISPLAY用户使用不同变量,允许连接到一台机器的多个用户使用不同的物理终端。