Не могу открыть Gedit как root

15

При запуске sudo gedit /path/to/some/random/fileя получаю следующую ошибку

** (gedit:6262): WARNING **: Command line `dbus-launch --autolaunch=7f8731869e1c690b8205727e0000000a --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.
Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Использование gksudoне помогает, что возвращает

Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Любая помощь, ребята. Мне нужно иметь возможность открывать файлы в Gedit как root.
Я нашел этот вопрос с той же ошибкой, но без решения. Невозможно запустить gedit с помощью sudo.


РЕДАКТИРОВАТЬ
Я нашел этот пост на форумах Ubuntu .
Это инструкции:

  1. echo $ DISPLAY # вам понадобится это значение на 3 строки ниже
  2. sudo -i # или "su -" на старых Slackwares
  3. xauth merge ~ alien / .Xauthority # используйте здесь свое имя пользователя вместо "alien"
  4. export DISPLAY =: 0.0 # используйте значение DISPLAY, которое вы видели за 3 строки

Придя к команде № 3, я получил эту ошибку
xauth: file /root/.Xauthority does not exist

Может быть, эта новая информация может пролить больше света.

Parto
источник
Вы пробовали gksudo gedit /path/to/the/file/nameвместо этого?
AzkerM
@AzkerMohamed Да, как говорит мой вопрос, используя gksudoили gksuвозвращает ту же ошибку.
Parto
1
Кажется , тот же случай , как это askubuntu.com/questions/175611/...
user.dz
Для этого я создал скрипт: gist.github.com/wachambo/bd22e12db2d5a46dc109bd0d553733be
Алехандро Бласко,

Ответы:

13

Наконец-то нашли ответ. Из этого вопроса Невозможно подключиться к X-серверу при запуске приложения с помощью sudo и особенно с этим вопросом Ошибка при попытке запустить приложение с помощью sudo или gksudo .

Я добавил строку Defaults env_keep+="DISPLAY"в конец visudoфайла в /etc/sudoers.

Yay мой sudo geditвернулся!

РЕДАКТИРОВАТЬ

Получил ту же ошибку снова на некоторое время.

Сделал еще несколько исследований, особенно этот ответ /ubuntu//a/137584/163331 и понял, что мне нужно добавить дополнительные параметры в visudoфайл. Вместо этого Defaults env_keep+="DISPLAY"я использовал эту строку:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"
Parto
источник
Зачем добавлять HOME в env_keep?
Муру
10

Запуск любых приложений с графическим интерфейсом от имени пользователя root может привести к повреждению файла, особенно если приложение с графическим интерфейсом является текстовым редактором. В дополнение к этому gksuи gksudoне работают для запуска графических приложений от имени root в Wayland в Ubuntu 17.10: почему gksu / gksudo не работает с Wayland? и пакет gksu был удален из репозиториев Ubuntu по умолчанию в Ubuntu 18.04 и более поздних версиях.

Nautilus Admin ( nautilus-admin ) - это простое расширение Python для файлового менеджера Nautilus, которое добавляет некоторые административные действия в контекстное меню:

  • Открыть как администратор: открывает папку в новом окне Nautilus с правами администратора (root).
  • Изменить как администратор: открывает файл в окне Gedit с правами администратора (root).

Чтобы установить Nautilus Admin во всех поддерживаемых в настоящее время версиях Ubuntu, откройте терминал и введите:

sudo apt install nautilus-admin  

Хотя есть команды для запуска графических приложений от имени пользователя root, настоятельно рекомендуется использовать текстовый редактор nano, который обычно запускается из терминала, для редактирования файлов от имени пользователя root. Текстовый редактор Nano включен в стандартную установку Ubuntu.

Nano очень прост в использовании. Инструкции по использованию нано-редактора всегда находятся внизу каждой страницы. Вам нужно знать только два сочетания клавиш нано для WriteOut и Exit. Нажмите комбинацию клавиш Ctrl+ Oи затем нажмите, Enterчтобы сохранить редактируемый файл. Нажмите комбинацию клавиш Ctrl+, Xчтобы выйти из нано.

Если вы привыкнете правильно редактировать файлы с правами суперпользователя, вы уменьшите вероятность ошибок, исправление которых может занять очень много времени.

Карел
источник
2
+1 за nanoредактора. Один из лучших редакторов, который любой может найти проще в эксплуатации.
AzkerM
@Karel Я, наконец, использовал nano для внесения изменений, но мне нужен мой корневой Gedit.
Parto
2
Это хороший совет, но это не ответ. Ребята из Linux любят терминал, но графический интерфейс отлично подходит для сложных задач и имеет лучший UX.
Азерафати
Вы можете настроить редактор sudoeditкоманды по умолчанию (по умолчанию это nano): Как я могу изменить редактор по умолчанию команды sudoedit на vim? но запуск графических редакторов с правами root может вызвать проблемы в Ubuntu 17.10 и более поздних версиях с Wayland.
Карел
5

В Ubuntu 17.10, по крайней мере, вы можете сделать это:

gedit admin:///path/to/some/random/file

Вам будет предложено ввести пароль, после чего файл откроется для редактирования от имени пользователя root.

Гуннар Хьялмарссон
источник
Также работает до 18.04 ...
Старейшина Гик
4

Для gedit попробуйте это:

sudo -H env DISPLAY=:0 gedit
харакири
источник
1
Получаю ту же ошибку.
Parto
1

Я пытаюсь обобщить всю информацию в других ответах на этой странице:

Wayland:

Единственный вариант выглядит, чтобы использовать nanoилиvi/vim

Xorg:

попробуй это

sudo -H env DISPLAY=:0 gedit

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

sudo visudo

Попробуйте добавить эту строку в конце

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
Postadelmaga
источник
Зачем добавлять HOME в env_keep?
Муру
geditотлично работает в Wayland. Пожалуйста, посмотрите ответ, который я только что опубликовал.
Гуннар Хьялмарссон
0

У меня просто была похожая проблема. Я использую Debian Jessie и для запуска gedit от имени root эта строка наконец заработала:

sudo -H gedit
Пол Фри
источник