在运行 远端服务器的图形程序 的时候会遇到这种错误:
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
原因在于当前用户和打开此terminal时的原始用户不是同一用户,期间使用了su来切换用户。X认证是基于cookies,需要让其他用户知道此cookies是什么。
解决方案:
1. 切换到原始用户,执行: $ xauth list $DISPLAY
输出如下,此为连接到X server的当前DISPLAY 的Cookie:
somehost.somedomain:10 mit-magic-cookie-1 4d22408a71a55b41ccd1657d377923ae
2. 使用 su 再切换到当前用户,执行:
执行前,最好先删除一下 rm -rf /home/yyf/.Xauthority
$ xauth add somehost.somedomain:10 MIT-MAGIC-COOKIE-1 4d22408a71a55b41ccd1657d377923ae
告诉当前用户此DISPALY的Cookie
3. 使用xclock 测试是否成功。
评论