Не удалось открыть любое графическое приложение с “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 в терминале хорошо работает. Это - мой локальный компьютер, не удаленная система.

7
задан 11 September 2017 в 00:26

1 ответ

Более старое сообщение ниже, но на все еще 100% действительно.

Мир не то, что можно было бы считать стабильным/готовым к работе. Большая часть ядра Ubuntu (такой как ниже упомянутого gksudo и другие программы), все еще полагается X и не может обработать то, что использует Мир. До следующего приказа это рекомендовало переключиться назад на X11, если у Вас нет очень серьезного основания использовать Мир. Если последний верен, станьте удобными с sudo nano.


Повторитесь после меня:

НИКОГДА НЕ ЗАПУСКАЙТЕ ГРАФИЧЕСКИЕ ПРОГРАММЫ С sudo! *

*кроме чрезвычайно редких случаев, где Вы знаете точно, что Вы делаете.... Или у Вас есть вещь для боли. Либо/либо.

Снова. И еще раз Вашей собаке в придачу.

Вместо этого используйте gksudo управляйте для запуска графической команды с корневыми полномочиями, как так:

gksudo gedit /var/log/auth.log

Если Ваша система не имеет GKsudo установленным на нем, установите его сначала с Кв.:

sudo apt install gksudo

Обратите внимание, что при выполнении KDE используйте эквивалент kdesudo команда.


Обоснование позади этого - это sudo не сохраняет полномочия пространства пользователя, которые очень часто используются графическими приложениями. Например, если Вы изменяетесь gedit файл конфигурации после открытия его с sudo, у Вас будет проблема где geditфайл конфигурации теперь принадлежит корню и является нечитабельным и/или незаписываемым Вам, пользователю.

gksudo заботится об этом для Вас и обрабатывает весь тяжелый подъем обеспечения, чтобы полномочия остались такими же и ничего не повреждали.

Консольные команды отличаются, потому что они часто не сохраняют конфигурации пространства пользователя и разработаны для использования sudo в противоположность gksudo.

17
ответ дан 23 November 2019 в 06:13

Другие вопросы по тегам:

Похожие вопросы: