通过 su 会话转发 X-windows

通过 su 会话转发 X-windows

我正在尝试转发我的 X 窗口,但似乎仅限于会话?

我想做的是通过 .x-applications 作为另一个用户调用 x-applications sudo su -

如果我知道其他用户的密码,那么这很容易解决:

ssh -Y user@host
password:  ********
gedit &

但是,如果运行一个没有密码的用户(例如 weblogic):

ssh –Y me@host
xauth list

sudo csh (now root)
xauth add (last line of the xauth list above)
gedit &

但是,我在允许其他用户访问 x 显示时遇到问题:

xauth list
su – weblogic
xauth add (last line of the xauth list above)
gedit (see if gedit launches).

这失败了。

我还尝试通过 sudo 直接转到其他用户:

ssh –Y me@host
xauth list
sudo su – weblogic
xauth add (last line of the xauth list above)
gedit (see if gedit launches).

这也失败了。

答案1

问题可能是su -会清除除 TERM 之外的所有环境变量,因此您将丢失设置DISPLAY。尝试DISPLAY=localhost:10.0在 gedit 之前进行设置(例如)。

答案2

如果响应 xauth add 命令(例如,xauth add :15.0)时出现以下错误: xauth: file /root/.Xauthority does not exit,只需触摸该文件 (touch /root/.Xauthority)

答案3

我正在使用类似的语句

su -s /bin/bash -c "xauth add $(xauth -f ~/.Xauthority list|tail -1); cd ~; VirtualBox" vbox

将 VirtualBox 替换为您要运行的软件,并且不要忘记将 vbox 更改为您想要的身份:)

相关内容