xhost: не мог открыть дисплей “0”

Я установил/usr/local/stata/xstata-mp как корень, полномочия 755.

Когда я пытаюсь запустить эту программу из некорневой учетной записи через терминал, я добираюсь:

user@host ~ % /usr/local/stata/xstata-mp
(xstata-mp:8030): Gtk-WARNING **: 10:09:24.384: cannot open display: 0

"Это нечетно", я думаю, я просто знаю, что установил DISPLAY=0 в моем .zshrc, "Ну, возможно, я должен явно сделать так при выполнении этой команды?" Таким образом, я пробую:

user@host ~ % DISPLAY=0 /usr/local/stata/stata-mp
(xstata-mp:8201): Gtk-WARNING **: 10:13:28.638: cannot open display: 0

Править: на комментарий @steeldriver я также попробовал ДИСПЛЕЙ =:0

Я имею глупца вокруг и нахожу, Почему не делают gksu/gksudo или запуска графического приложения с работой sudo с Уэйлендом? который кажется обещанием (хотя я не использую Уэйленд, я нахожусь на Ubuntu 18.10, и Уэйленд остается установленным). Я пробую ниже команды как user@host, и как su в административной учетной записи:

user@host ~ % xhost -si:localuser:root
xhost:  unable to open display "0"

Я становлюсь отчаянным, и попытка:

user@host ~ % DISPLAY=0 xhost -si:localuser:root
xhost:  unable to open display "0"

Я пробую другие числа дисплея все напрасно. Я думаю, что "Я - newb, возможно localhost действительно средства [ЛОКАЛЬНЫЙ ПОЛЬЗОВАТЕЛЬ] и пробуют упомянутыми выше перестановками.

user@host ~ % xhost -si:user:root
xhost:  unable to open display "0"

Оказывается, что я - newb, но это не помогло.:)

Как я могу заставить xhost волшебство произойти так, чтобы Gtk не закатывал истерику, и я могу просто запустить свое приложение (как user@host)?

РЕДАКТИРОВАНИЕ 22.03.2019:

pgrep -a Xorg
3907 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/123/gdm/Xauthority -background none -noreset -keeptty -verbose 3
7370 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
0
задан 23 March 2019 в 12:45

3 ответа

По некоторым причинам (вполне, вероятно, имеющий отношение ко мне являющийся вышеупомянутым newb), хотя echo $DISPLAY возвраты :0, если я ввожу who Я вижу, что мой дисплей на самом деле :1 (?!), так, чтобы, если я вызываю DISPLAY=:1 /usr/local/stata/stata-mp программа запускается без ошибки.

Повторить мое решение unable to open display #:

  1. ввести who и отметьте фактическое число дисплея (включая двоеточие если существующий)
  2. для желаемой команды (например, xhost, или /usr/local/stata/stata-mp), введите DISPLAY=[INSERT NUMBER YOU NOTED HERE] [x COMMAND HERE]

Я буду с удовольствием upvote и принимать другой ответ, который может помочь мне понять это на вид несоответствующее поведение.

0
ответ дан 26 October 2019 в 13:44

Попробовать xhost +si:localuser:root

Это говорит xserver, что Вы используете (ли демонстрирующийся:0 или:1, или везде, где), чтобы принять, что соединения от локальных пользователей, названных 'корнем' - то есть, программы с SUID, базируются, или Вы сделали sudo перед.

2
ответ дан 26 October 2019 в 13:44

Ни одна из схем xauth или xhost не позволяла пользователю root открывать экран в Debian 10 (Buster) или Ubuntu 20.04 из терминала, работающего под управлением root, через «su» или приложение, запущенное с помощью «sudo».

Кто-то (не помню кто) написал (не помню где) добавить следующую строку в /etc/pam.d/su и /etc/pam.d/sudo:

session optional pam_xauth.so

Было бы полезно, если бы это было (а) легче найти или (б) таким образом в дистрибутивах.

2
ответ дан 10 July 2020 в 20:43

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

Похожие вопросы: