Програмі X потрібні два фрагменти інформації для підключення до дисплея X.
Потрібна адреса дисплея, яка зазвичай відбувається :0
під час локального входу або :10
, :11
тощо, коли ви віддалено входите в систему (але число може змінюватися залежно від кількості активних з'єднань X). Адреса дисплея зазвичай вказується в DISPLAY
змінній середовища.
Для відображення потрібен пароль. X паролі відображення називаються магічними файлами cookie . Чарівні файли cookie не вказуються безпосередньо: вони завжди зберігаються у файлах X-авторитету, що представляють собою сукупність записів форми "display :42
has 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
export $(dbus-launch)
або використовуватиxhost [+]
для запуску програми за допомогою X та свого облікового запису суперпользователя.