以标准非管理员用户身份通过​​ SSH 运行远程 GUI 应用程序

以标准非管理员用户身份通过​​ SSH 运行远程 GUI 应用程序

我正在为内部呼叫中心员工运营一个服务台。所有员工在工作时都佩戴耳机,我正在编写一个脚本,通过 SSH 远程启动最小化的 Mumble 会话,以便更好地帮助远程支持。所有远程用户都使用 Linux Mint XFCE。

我按照奥利的最佳解决方案解决了这个问题如何通过 SSH 在远程 Linux PC 上启动 GUI 软件,我使用他的示例编写了这段代码来启动 Devilspie(我已预先配置它以最小化 Mumble),然后启动 Mumble 本身:

export DISPLAY=:0
devilspie & echo loading devilspie
mumble

当我以远程管理配置文件登录时测试此代码时,它就像一个魅力。 Devilspie 启动,然后 Mumble 启动以立即最小化。然而,我的问题是我试图支持的最终用户不是他们工作站的管理员。如果我在远程计算机以非管理员用户身份登录时通过 SSH 运行相同的脚本,Devilspie 会给出以下错误:

No protocol specified
Gdk-WARNING **: devilspie: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.

并且 Mumble 给了我以下错误:

 No protocol specified
 mumble: cannot connect to X server :0

由于这个相同的脚本在管理员配置文件上完美运行,我假设该错误可能与权限有关。帮助!我不知道如何为非管理员用户启动这些应用程序。

答案1

如果我正确理解了这个问题:

  • 工作站正在运行 X,并且用户 $USER 已登录
  • 用户 $ADMIN 想要在该计算机上启动 X 客户端,并连接到 $USER 的 X 服务器。

如果您可以控制 X 会话的启动,您应该能够安排(也许在 $USER's 中.xsession)使用以下命令授予对 $ADMIN 的访问权限xhost

xhost +SI:localuser:$ADMIN

我有时在调试带有 X 显示器的嵌入式设备时使用这种技术。

xhost有关完整选项集,请参阅手册页。

相关内容