在另一个用户会话中打开新的终端窗口

在另一个用户会话中打开新的终端窗口

在 Ubuntu 桌面上,我(以 root 身份登录)如何调用 gnome-terminal 在其他用户会话内打开终端窗口并执行一些命令/脚本。

目的是能够在其他用户终端上打开重负载进程并保持其开放,以便用户与其进行交互。

“导出 DISPLAY”方法对我不起作用。还有其他方法可以解决这个问题吗?

答案1

尝试同时设置 DISPLAY 和 XAUTHORITY。您必须拥有所有者 .Xauthority 文件的权限,并且知道他使用哪种显示器。

export DISPLAY=':0'
export XAUTHORITY=/home/<owner_of_display>/.Xauthority

更改 :0 以纠正错误,但通常只有一个用户时它是 0。如果您具有 root 访问权限,则此方法应该有效:

root@host:~# sudo su - <username>
username@host:~$ export DISPLAY=':0'
username@host:~$ export XAUTHORITY=$HOME/.Xauthority
username@host:~$ gnome-terminal -x sh -c '<command>; exec bash'

最后一行是关于启动新的 gnome-terminal 并执行您想要的命令。对我来说有几个新东西,所以可能不会那么简单。

相关内容