如何在“su”或“su-”其他用户之后启动X11应用程序

Linux系统 0 3660 团子精英 收藏

要访问X应用程序,如system config date、xclock、vncviewer,我们需要将远程主机的DISPLAY设置到本地服务器。通常使用以下命令完成。

hostname# export DISPLAY=x.x.x.x:y.y

其中x.x.x.x:y.y–是连接到远程主机的系统的显示设置。

您还可以在ssh中使用-X选项直接导出远程主机上的显示。

# ssh -X root@hostname

如果您尝试切换到远程系统上的另一个用户并再次打开X应用程序,则会出现错误类似如下:

X11 connection rejected because of wrong authentication.
E233: cannot open display

sudo用户的X11转发

仅仅设置DISPLAY是不够的。X身份验证基于cookies,因此必须设置发起连接的用户使用的cookie。

以下过程允许sudo用户使用基于ssh的X11隧道:

1.使用ssh的-X选项连接远程主机。

# ssh -X root@hostname

2.现在列出当前用户的coockie集合。

# xauth list $DISPLAY
node01.thegeekdiary.com/unix:10  MIT-MAGIC-COOKIE-1  dacbc5765ec54a1d7115a172147866aa
# echo $DSIPLAY
localhost:10.0

3.使用sudo切换到另一个用户帐户。将上面命令输出中的cookie添加到sudo用户。

# su - [user]
# xauth add node01.thegeekdiary.com/unix:10  MIT-MAGIC-COOKIE-1  dacbc5765ec54a1d7115a172147866aa

4.再次为sudo用户设置2中的步骤。

# export DISPLAY=localhost:10.0
# xclock

xclock.jpg

注意:通常如果你使用了ssh  -X 参数,DISPLAY已经默认自动设置了,无需执行export DISPLAY的命令

相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码