我正在尝试转发我的 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 更改为您想要的身份:)