我正在为内部呼叫中心员工运营一个服务台。所有员工在工作时都佩戴耳机,我正在编写一个脚本,通过 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
有关完整选项集,请参阅手册页。