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

试图在这里找到一些答案: 更新到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: 

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

较旧的post在下面,但仍然100%有效。

Mir并不是人们认为稳定/准备好运行的。 大多数Ubuntu核心(例如下面提到的gksudo和其他程序)仍然依赖于X,并且无法处理Mir使用的内容。 除非另有通知,否则建议您切换回X11,除非您有充分的理由使用Mir。 如果后者是真的,请使用sudo nano舒适。


在我之后重复:

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

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

再次。 再一次给你的狗好了。

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

 gksudo gedit /var/log/auth.log 

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

 sudo apt install gksudo 

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


这背后的原因是sudo不保留用户登陆权限,图形应用程序经常使用这些权限。 例如,如果在使用sudo打开gedit配置文件后更改gedit配置文件,则会遇到gedit的配置文件现在由root拥有并且对用户而言不可读和/或不可写的问题。

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

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

Interesting Posts