Не удалось подключиться к Mir: Не удалось подключиться к серверному сокету: нет такого файла или каталога

7

После входа в систему как другого пользователя, как я запускаю программы GUI?

thufir@doge:~$ 
thufir@doge:~$ sudo -u hawat -i
hawat@doge:~$ 
hawat@doge:~$ whoami
hawat
hawat@doge:~$ 
hawat@doge:~$ pwd
/home/hawat
hawat@doge:~$ 
hawat@doge:~$ echo $HOME
/home/hawat
hawat@doge:~$ 
hawat@doge:~$ firefox
No protocol specified
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0
hawat@doge:~$ 
    
задан Thufir 12.01.2017 в 14:38
источник

4 ответа

8

export DISPLAY=:0 работал для меня. Убедитесь, что вы выполняете команду в соединительной системе, а не в системе, к которой вы подключаетесь!

    
ответ дан user2938093 07.02.2017 в 09:24
источник
4

Этот ответ работает на моих Ubuntu 16.04 и Mir (с небольшими изменениями):

Запустить команду x в качестве другого пользователя с помощью xauth

Wrapper bash script:

Для удобства я создал сценарий bash bash , который вы можете загрузить в /usr/local/bin/xsudo и отметить исполняемый файл ( chmod +x /usr/local/bin/xsudo ).

Затем просто запустите:

xsudo hawat firefox

Потенциальные альтернативы:

  • В качестве более простой альтернативы вы можете посмотреть pam_xauth (s. этот ответ ) Однако это почему-то не работает для меня. (Я все еще получаю сообщение об ошибке, когда firefox не смог подключиться к дисплею: ​​0)
  • На многих форумах вы можете увидеть команду xhost +local: или аналогичную, которая будет сделать gksudo -u hawat firefox работать без какого-либо скрипта-оболочки. Однако помните, что это открывает лазейку безопасности . Любой активный пользователь на вашем локальном хосте сможет получить доступ к вашей клавиатуре, мыши, экрану и т. д.
  • Раньше существовал sux , который по какой-то причине был прекращен - вы может все еще быть в состоянии загрузить и использовать его, хотя. Насколько я могу судить, он сделал что-то похожее на мой скрипт только намного больше. К сожалению, я не мог понять, почему это больше не поддерживается. (Возможно, потому что теперь мы должны использовать pam_xauth вместо - s. Первая альтернатива)
ответ дан lentschi 02.03.2017 в 12:59
источник
1

Проведя слишком много времени на этом, я обнаружил, что с Gnome на Ubuntu 16.04 правильное значение - DISPLAY=:1 , а не DISPLAY=:0 , как это было с незапамятных времен.

    
ответ дан Peter V. Mørch 08.11.2017 в 16:54
источник
0

export DISPLAY =: 0 работает отлично, но это временное решение, так как вам нужно вводить его каждый раз при открытии терминала.

Постоянное решение: Проблема может быть вызвана переменной env_keep в / etc / sudoers. Добавьте следующую строку в конец / etc / sudoers, используя gedit, или используя sudo visudo

  

По умолчанию env_keep +="DISPLAY"

Примечание: Помните, что всегда используйте "+=" при добавлении в env_keep. В случае, если есть другие env_keep с "=" , измените их на "+=" , потому что использование "=" переопределит другие значения.     

ответ дан Mahesh Kumar 09.10.2017 в 13:29
источник

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