无法使用“sudo”打开任何图形应用程序

Inm*_*587 7 sudo mir

试图在这里找到一些答案:更新到 15.10 后无法从终端启动图形应用程序,但它没有解决我的问题。

$ sudo gedit
Failed to connect to Mir: Failed to connect to server socket: No such file or directory.
Unable to init server: Could not connect: Connection refused.

(gedit:4574): Gtk-WARNING **: cannot open display:
Run Code Online (Sandbox Code Playgroud)

只有gedit在终端工作正常。这是我的本地计算机,不是远程系统。

Kaz*_*lfe 17

较旧的帖子在下方,但仍然 100% 有效。

Mir不是人们认为稳定/准备好运行的东西。大部分的 Ubuntu 核心(比如下面提到的gksudo和其他程序)仍然依赖于 X,无法处理 Mir 使用的东西。在另行通知之前,建议您切换回 X11,除非您有充分的理由使用 Mir。如果后者属实,请放心sudo nano


跟我重复一遍:

永远不要运行图形程序sudo!*

*除非在少数情况下,您确切地知道自己在做什么......或者您有痛苦的事情。两者任一。

再次。再一次给你的狗好好衡量一下。

相反,使用该gksudo命令来启动具有 root 权限的图形命令,如下所示:

gksudo gedit /var/log/auth.log
Run Code Online (Sandbox Code Playgroud)

如果您的系统上没有安装 GKsudo,请先使用 apt 安装它:

sudo apt install gksudo
Run Code Online (Sandbox Code Playgroud)

请注意,如果您正在运行 KDE,请使用等效kdesudo命令。


这背后的原因是sudo不保留用户土地权限,这是图形应用程序经常使用的。例如,如果您gedit在使用 . 打开后更改配置文件sudo,则会遇到一个问题,即gedit的配置文件现在归 root 所有,并且对您(用户)不可读和/或不可写。

gksudo 为您处理这些并处理所有繁重的工作,以确保权限保持不变并且不会破坏任何内容。

控制台命令是不同的,因为它们通常不保存用户空间配置,并且设计用于使用而sudo不是gksudo.