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 выдавал эту ошибку.

Источники:

  1. http://www.nikhef.nl/~mjg/xhost_plus.html
  2. https://forums.opensuse.org/showthread.php/405624-sudo-doesnt-open-X-programs
  3. https://wiki.ubuntu.com/CustomXSession

Выполните следующее в своем терминале:

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 не помогло устранить ошибку.

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