我们有一个小型 Linux 集群,大约有 12 台计算机和类似数量的用户。
超级用户是否可以在另一台用户正在使用的另一台机器上启动图形应用程序(例如 firefox 或什至 python 脚本)?
答案1
实际上你想要的是X窗口系统的基本概念。然而,最近的 Linux 默认情况下不允许远程 X 客户端。您必须先启用它。该工具xhost
可以做到这一点。运行xhost +
只是禁用访问控制,任何客户端都可以与该服务器交互。
X 服务器实例由 寻址<host>:<display>
。要让xterm
您在计算机上运行渲染到远程 X 服务器,您可以编写,DISPLAY=remotehost.my.doma.in:0 xterm
或者如果您更喜欢使用 IP 地址,您可以编写DISPLAY=192.168.0.1:0 xterm
.:0
在主机内唯一标识 xserver。通常,显示管理器从 0 开始 xserver 编号,因此假设远程 xserver 为显示 0 是一个相对安全的选择。此示例命令将按照您 (uid) 在您的计算机上启动 xterm,但渲染到远程 xserver 并从该远程 xserver 获取事件192.168.0.1,这意味着您的机器上有一个xterm以您的身份运行,但它被另一台机器上的其他人使用。
尊重 DISPLAY 环境是 Xlib 的一部分,因此受到每个 X 应用程序的支持。
答案2
你可以试试这个:
在用户自动启动目录中,~/.config/autostart
保留一个最小的 python 脚本/bash 脚本启动器,等待特定目录中的文件。 (使用 Inotify - 它有一个 bash shell 命令,该命令将阻塞直到目录更改)然后执行脚本中的命令。这将启动出现在用户屏幕上的完整 GUI 应用程序。
另一种方法是从根进程 ewww 中提取 X cookies 和环境变量。