【linux】解决 Linux 系统中 root 用户无法打开图形界面问题
问题描述:
在 Linux 系统中,当我们远程SSH尝试以 root 用户身份运行需要图形界面的应用程序时,可能会遇到以下错误信息:
MoTTY X11 proxy: Unsupported authorisation protocol
terminate called after throwing an instance of 'framework::window::DisplayError'
what(): No display available.
Aborted (core dumped)

但是我们在普通用户以SSH却可以打开图形界面
解决方法
1、查看普通用户的DISPLAY值
在普通用户下查看DISPLAY值,输入
c
echo $DISPLAY

2、1设置root用户正确的DISPLAY变量
在root用户下执行
c
export DISPLAY=localhost:12.0

输出为 localhost:12.0,则说明设置成功。
3、复制 .Xauthority 文件
我们需要将普通用户的 .Xauthority 文件复制到 root 用户的家目录中。假设普通用户的用户名为 user,可以执行以下命令:
c
cp /home/user/.Xauthority /root/
然后,修改 .Xauthority 文件的权限,确保 root 用户可以访问该文件:
c
chmod 600 /root/.Xauthority

完成以上步骤后,再次尝试以 root 用户身份运行需要图形界面的应用程序。问题解决!