免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2217 | 回复: 1
打印 上一主题 下一主题

[系统管理] RHEL 6.5 sudo执行命令x11转发报错Error: Can't open display: localhost:10.0 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之浙江
日期:2017-01-10 18:35:44
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-01-10 18:35 |只看该作者 |倒序浏览
由于root帐号有权限管控,我们只有应用的系统帐号(IBM TDS应用),但做应用配置需要root权限和转发X11图形介面,首先,root给该帐号配置了sudo权限。
现象:
1、应用帐号执行xclock可以在本机显示图形介面
2、sudo xclock用root权限执行报Error: Can't open display: localhost:10.0
[dsrdbm01@PRDESS3 ~]$ sudo xclock
[sudo] password for dsrdbm01:
Error: Can't open display: localhost:10.0
[dsrdbm01@PRDESS3 ~]$


原因:
x11转发失败。
RHEL linux X11本机转发使用Xauthority的方式验证。用户登录后会在home目录下创建.Xauthority文件,该文件中存放一个魔法密钥,转发端和接收端的魔法密钥需要一致,可以通过xauth命令查看。
[dsrdbm01@PRDESS3 ~]$ xauth
Using authority file /home/dsrdbm01/.Xauthority
xauth> list
PRDESS3/unix:10  MIT-MAGIC-COOKIE-1  b4a86e15e4e7985cc6fa790a65d54b70
xauth>


[dsrdbm01@PRDESS3 ~]$ echo $DISPLAY
localhost:10.0


本地的X11转发到localhost的6000+10端口(6010),xauth结果中对应主机名、平台、端口、密钥命、密钥

[dsrdbm01@PRDESS3 ~]$ netstat -nlp | grep 6010
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      -                  
tcp        0      0 ::1:6010                    :::*                        LISTEN      -


可以本机在监听6010端口,然后通过shh的x11转发功能将图形介面转到本地xmanager上显示。

而root中的xauth密钥和应用帐号的密钥不一致(端口号为10的记录),该密钥每次SSH登录后都会重新生成。
[root@PRDESS3 ~]# xauth
Using authority file /root/.Xauthority
xauth> list
PRDESS3/unix:10  MIT-MAGIC-COOKIE-1  541a97cf84b6ae6644adea6f760ad901
PRDESS3/unix:11  MIT-MAGIC-COOKIE-1  98d6c1adca68a77af675ec775ecdb15a
xauth>


由于root和应用帐号中的auth密钥不一致,所以sudo转发x11失败。因为sudo也是转发到localhost:10:0
[dsrdbm01@PRDESS3 ~]$ sudo env
DISPLAY=localhost:10.0


所以
方法1、需要将应用帐号当前的X11密钥配置到root的auth中
[dsrdbm01@PRDESS3 ~]$ sudo auth
sudo: auth: command not found
[dsrdbm01@PRDESS3 ~]$ sudo xauth
Using authority file /root/.Xauthority
xauth> add PRDESS3/unix:10  MIT-MAGIC-COOKIE-1  b4a86e15e4e7985cc6fa790a65d54b70
xauth> list
PRDESS3/unix:10  MIT-MAGIC-COOKIE-1  b4a86e15e4e7985cc6fa790a65d54b70
PRDESS3/unix:11  MIT-MAGIC-COOKIE-1  98d6c1adca68a77af675ec775ecdb15a
xauth>


方法2:
再启用一个root的session,并将sudo的DISPLAY和新的root会话的DISPLAY设成一致。这当然没必要了,有root权限,就这用这么干了。



论坛徽章:
1
15-16赛季CBA联赛之浙江
日期:2017-01-10 18:35:44
2 [报告]
发表于 2017-01-10 20:03 |只看该作者
每次重新登录后,魔法密钥会重新生成,需要重复该操作
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP