Все внезапные gksu прекратили работать на меня:
~$ gksu gparted
(gpartedbin:24252): Gtk-WARNING **: cannot open display: :0
То же происходит с gparted-pkexec
:
~$ gparted-pkexec
No protocol specified
(gpartedbin:25454): Gtk-WARNING **: cannot open display: :0
Что могло возможно вызывать это?
Я не выполняю это через SSH или VNC. Это - localhost в нормальном окне терминала.
Попытайтесь работать xhost +localhost
в Вашем терминале, и затем выполнить команду снова. Это позволяет всем пользователям в Вашей системе (т.е. корень) открытые окна на Вашем экране. Удостоверьтесь, что использовали +localhost и не просто +, поскольку это более безопасно для разрешения соединений от только localhost, чем откуда-либо.
Для создания этого постоянным отредактируйте ~/.xinitrc
файл как это:
Выполнение gedit ~/.xinitrc
Редактирование файл для сходства с этим (это должно быть пусто в запуске):
#! /bin/bash
xhost +localhost &
Теперь сохранили файл, выходят из системы и входят в систему. Теперь все должно работать очень хорошо с sudo.
я не могу воспроизвести Вашу проблему на 14,04, но это работало на меня в прошлом, когда sudo / gksu бросил эту ошибку.
Источники:
Выполните в своем терминале следующее:
nano /home/user/.bashrc # user = name of your user
Добавьте следующую строку в конце.
export XAUTHORITY=$HOME/.Xauthority
Если под управлением Ubuntu 17.10 или более новый, эта проблема может возникнуть, когда приложение не было обновлено с полной поддержкой Уэйленда. Как обходное решение, пока не обновляется приложение, можно работать
xhost +SI:localuser:root
который позволит root
пользователь для отображения приложений на рабочем столе. Также посмотрите это Вопросы и ответы для других возможных обходных решений: Почему не делают gksu/gksudo или запуск графического приложения с sudo работают с Уэйлендом?
xhost +
исправил мою проблему
, но имейте в виду, что xhost +
полностью деактивирует аутентификацию и позволяет каждому получить доступ ко всем приложениям на вашем экране ...
xhost + si: localuser: root
, похоже, работает аналогично с правильной аутентификацией