gksu: Gtk-WARNING **: не могу открыть дисплей::0
Внезапно ГКСУ перестал работать на меня:
~$ 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 в обычном терминальном окне.
6 ответов
Если вы работаете в Ubuntu 17.10 или новее, эта проблема может возникнуть, если приложение не было обновлено с полной поддержкой Wayland. В качестве обходного пути, пока приложение не будет обновлено, вы можете запустить
xhost +SI:localuser:root
что позволит root
Пользователь для отображения приложений на рабочем столе. Также смотрите этот раздел вопросов и ответов для других возможных обходных путей: почему gksu/gksudo или запуск графического приложения с sudo не работают с Wayland?
Попробуйте запустить xhost +localhost
в вашем терминале, а затем снова запустите команду. Это позволяет всем пользователям вашей системы (т.е. root) открывать окна на вашем экране. Убедитесь, что вы используете +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
xhost +
исправил мою проблему
но имейте в виду, что
xhost +
полностью отключает аутентификацию и позволяет каждому получить доступ ко всем приложениям на вашем экране...
xhost +si:localuser:root
похоже, работает аналогично с правильной аутентификацией
Я решаю это, просто запустив в терминале,
sudo gparted
Похоже, что диалоговое окно пароля root GTK+ перепутано с настройками сервера x
Просто добавлю к возможным проблемам, которые приводят к появлению сообщения «Gtk-WARNING **: невозможно открыть дисплей: :0».
Я получил это после удаления/tmp/.X11-unix/X0
. Решение, которое я знаю на данный момент: перезапуск, создание сокета с помощьюpython -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/.X11-unix/X0')"
из https://serverfault.com/questions/358866/create-unix-named-socket-from-the-command-line не помогло устранить ошибку.