Не вдається підключитися до сервера X під час запуску програми з sudo


29

Коли я запускаю якесь програмне забезпечення за допомогою sudoкоманди, воно показує помилку

cannot connect to X server

Наприклад, якщо я запускаю таку команду:

$ sudo gedit /etc/profile

Я отримую наступну команду

(gedit:6758): WARNING **: Command line `dbus-launch --autolaunch=84b871d735f31ffe014dc9ba00000009 --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.

Або якщо я бігаю, super-boot-managerя отримую наступну помилку

buc: cannot connect to X server

Будь ласка, допоможіть.


Звідки ти біжиш super-boot-manger?
Тор

По-перше, я спробував бігти super-boot-managerбезпосередньо з обідньої єдності. Потім я спробував це з терміналу, тоді я отримав ці масажні помилки.
Апурба

Як у терміналі в графічному середовищі користувача? Що означає: echo $DISPLAYкаже? Ви повинні запустити його без , sudoяк super-boot-managerбіжить sudoвнутрішньо.
Тор

echo $DISPLAYдарує :0.0. І я не біжу super-boot-managerяк sudo. Я запускаю просто за допомогою команди super-boot-managerз терміналу.
Апурба

1
Нарешті проблема вирішена. Я щойно додав рядок: Defaults env_keep="DISPLAY XAUTHORITY"наприкінці visudo. Дякую всім, спеціально @Thor за добру допомогу.
Апурба

Відповіді:


39

Потрібно дозволити кореневому користувачеві доступ до X-сервера:

xhost local:root

І вкажіть команду праворуч DISPLAY:

sudo DISPLAY=$DISPLAY gedit /etc/profile

Це вирішило проблему з відкриттям geditяк sudo, але досі обід не може super-boot-manager. Тут відображається така ж помилка
Апурба

15

Нарешті проблема вирішена. Я щойно додав рядок:

Значення за замовчуванням env_keep = "ВІДКРИТТЬ СІСТЕМУ"

в кінці visudo.

Для цього вам потрібно бігти

судо візудо

він відкриє файл, а потім в кінці додасть вищезазначений рядок.

Дякую всім, спеціально @Thor за добру допомогу


1
За замовчуванням env_keep = "DISPLAY" працює для мене.
bagustris

Я шукав цю відповідь вічно і низько. Я б хотів, щоб я міг висловити обидва рази за ваші відповіді. Дуже дякую! :)
Єв-

4

Доповнення @ відповідь Тор:

Бігайте xhost local:rootраніше sudo gedit. Щоб зробити це постійним, додайте рядок

xhost local:root

до файлу ~ / .xinitrc 1 . Створіть файл, якщо він не існує.


[1] https://askubuntu.com/a/720120/452398


Дякуємо за надання відповіді, яка забезпечує непостійне рішення.
2NinerRomeo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.