Не вдається підключитися до сервера X: 0,0 як суперпользователь


10

Коли я перебуваю в мережі, я отримую таку помилку, і інструмент не запускається:

[root@dhcppc9 lin64]# ./ise
No protocol specified
_pn: cannot connect to X server :0.0

Але все гаразд, коли я не суперпользователь. Чому це?

Редагувати

[root@dhcppc9 lin64]# export $(dbus-launch)
No protocol specified

будь-яка пропозиція?

Також

[root@dhcppc9 lin64]# xhost [+]
No protocol specified
xhost:  unable to open display ":0.0"

Це класика. Ви можете робити export $(dbus-launch)або використовувати xhost [+]для запуску програми за допомогою X та свого облікового запису суперпользователя.
41754

Робили обидва, дивіться редагування вище
msz

Можливо, $ xhostпобачити поточний доступ та $ xhost +включити доступ з будь-якого хоста. Ви часто це робите з віртуального терміналу, якого ви точно знаєте, що може
нерестувати

@galegosimpatico: чому запуск сервера dbus вирішить цю проблему?
Bananguin

Якщо ви не суперпользователь, що echo $DISPLAYпоказує? Кому користувачеві належить процес xserver, який ви хочете використовувати? (останнє ви можете дізнатись, скориставшись, наприклад ps faux)
Bananguin

Відповіді:


12

Програмі X потрібні два фрагменти інформації для підключення до дисплея X.

  • Потрібна адреса дисплея, яка зазвичай відбувається :0під час локального входу або :10, :11тощо, коли ви віддалено входите в систему (але число може змінюватися залежно від кількості активних з'єднань X). Адреса дисплея зазвичай вказується в DISPLAYзмінній середовища.

  • Для відображення потрібен пароль. X паролі відображення називаються магічними файлами cookie . Чарівні файли cookie не вказуються безпосередньо: вони завжди зберігаються у файлах X-авторитету, що представляють собою сукупність записів форми "display :42has cookie 123456". Файл повноважень X зазвичай вказується в XAUTHORITYзмінній оточення. Якщо $XAUTHORITYне встановлено, програми використовують ~/.Xauthority.

Див. Розділ Відкриття вікна на віддаленому дисплеї X (чому "Не вдається відкрити дисплей")? для отримання детальної інформації.

У вашому випадку DISPLAYвстановлено, але програми очевидно не можуть знайти файл cookie. Перевірте значення XAUTHORITYсеансу та нижче su.

Якщо XAUTHORITYне встановлено в сеансі і suвстановлює HOMEзмінні оточення в домашньому каталог суперкористувача, то вам потрібно встановити , XAUTHORITYщоб /home/msz/.Xauthorityде /home/mszваш домашній каталог.

Якщо suвилучаєте XAUTHORITYз оточення, або поставте його назад, або налаштуйте suне робити цього.

Якщо ваш домашній каталог знаходиться в деяких файлових системах, таких як NFS, root, можливо, не зможе прочитати його безпосередньо. У цьому випадку ви можете скопіювати .Xauthorityфайл у інше місце у файловій системі, що не належить NFS:

XAUTHORITY_COPY=$(umask 077; mktemp)
cat "${XAUTHORITY:-~/.Xauthority}" "$XAUTHORITY_COPY"
XAUTHORITY="$XAUTHORITY_COPY" su
rm "$XAUTHORITY_COPY"
unset XAUTHORITY_COPY

1
Я створив символічне посилання, і воно також спрацювало. Ось це:ln -s /home/otheruser/.Xauthority ~
Can Geliş

XAUTHORITY для мене був встановлений як файл, якого вже не було:
pbhj

5

Ви запускаєте xhost як root!

запустити xhost як звичайний користувач xhost +, а потім стати root та спробувати ще раз.

btw, як вказували інші, xhost +дозволяє будь-якому користувачеві будь-якого хоста


Багато сучасних систем налаштовані так, що xhostне працює. Якщо так, то принаймні бігайте xhost +localhost, ні xhost +!
Жил "ТАК - перестань бути злим"

Зрозумійте, це хороший момент. Дякую за вашу пораду.
X Tian

Це була моя проблема! Дякую, це все вирішило! Я просто запустив це з некореневих.
Квідам

0

Для мене XAUTHORITY був встановлений як файл, який більше не існує:

$ echo $XAUTHORITY

/tmp/xauth-1000-_0

Так я і зробив

unset XAUTHORITY

а потім зміг підключитися до мого додатка як root за допомогою kdesudo (в даному випадку kdesudo bleachbit)


0

Запустити як звичайний користувач

xhost + localhost

потім увімкніть суперкористувача за допомогою

sudo su 

нарешті перейдіть до прикладу сервера

cd /usr/local/Ampps

нарешті запустіть ./Ampps

дякую в 2020 році


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