Не может открыть gedit (или Firefox, и т.д.) из командной строки после 'su' другому пользователю: “Ошибка: не может открыть дисплей::0.0”

Просто созданный пользователь из окна управления пользователями Ubuntu на моем ноутбуке. Подтвержденный /home/newuser каталог был создан.

Таким образом, я открываю окно терминала, su в новую учетную запись пользователя и это работает хорошо. Когда я пробую вводное перо, gedit, Firefox или любые X приложений, я добираюсь:

Error: cannot open display: :0.0

Другие учетные записи пользователей на том же ноутбуке могут открыть эти те же приложения через командную строку. Просто не эта недавно созданная учетная запись (от Управления пользователями gui использование значений по умолчанию).

Что дает?

1
задан 25 February 2017 в 22:30

1 ответ

Фон

Графика от "su'd пользователь" не работает, потому что тому другому пользователю не разрешают записать (открытые окна) в Вашей настольной среде. Это работает, если Вы выходите из системы и входите в систему как тот пользователь, или если Вы используете некоторый специальный инструмент, как steeldriver предлагает.

Легкое решение использует xhost и gksu, но могли бы все еще быть некоторые проблемы, потому что Вы [пробуете к] запись, где Вы, как 'предполагается,' не пишете.

Используя ssh сервер и ssh -X в тот же компьютер 'излишество' и добавляет ненужные издержки, но может использоваться, если Вы хотите работать как этот время от времени (особенно, если Вам уже установили ssh сервер для других целей). ssh -X работы очень надежным способом с большинством программ GUI.

xhost и gksu

Возможно запустить графические программы как другого пользователя с xhost и gksu. Важно использовать gksu постараться не перезаписывать Ваши конфигурационные файлы с теми из другого пользователя. Это может создать проблемы для Вас для запущения той же программы GUI как собственный пользователь, та же проблема, как будто Вы запускаете программы GUI с sudo. Другими словами, использовать gksu или gksudo с программами GUI.

Текст после символа # комментарий и не используемый.

В более новых версиях стандартной Ubuntu необходимо установить gksu

sudo add-apt repository universe  # at least in live and persistent live systems
sudo apt-get update
sudo apt-get install gksu

Подготовьтесь с xhost

xhost local:other-user           # general
xhost local:sudodus              # example, use the actual user ID

Теперь это должно работать для использования gksu запускать программу как другого пользователя

gksu -w -u other-user gedit file-to-edit   # general
pwd > i-am-here                            # only to show 'where you are'
gksu -w -u sudodus gedit i-am-here         # example

Я заметил что текущий каталог gedit будет каталог исходного пользователя. И другой пользователь не должен писать там. Другими словами, это - хорошая идея использовать полный путь для файла, чтобы отредактировать, или использовать, например,

gksu -w -u sudodus gedit /home/sudodus/file-to-edit  # example

Когда Вы делаете простой текстовый режим su

su - other-user                  # general
su - sudodus                     # example

текущий каталог будет корневым каталогом другого пользователя.

См. ответ Eliah Kagan в этой ссылке для получения дополнительной информации

askubuntu.com/questions/168815/how-to-get-graphical-display-when-executing-commands-as-another-user...

Ищите выполнение графических команд непосредственно как другой пользователь

ssh-X

ssh (только текст) и ssh -X (также графика), предназначаются для, входят в систему другого компьютера, но это может использоваться локально также при установке ssh сервера, например

sudo apt-get install openssh-server

Я могу войти в систему как это

$ ssh -X sudodus@127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:XZBdC58tpt8ud63Z7DfZRX9DYp4xPq6uh0aI07fLlqg.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
sudodus@127.0.0.1's password: 
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-64-generic i686)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

9 paket kan uppdateras.
0 uppdateringar är säkerhetsuppdateringar.

Last login: Tue Feb 14 13:51:52 2017 from 192.168.0.2
sudodus@xenial32 ~ $ 

Теперь, если я запускаю, например, firefox, это будет работать. Некоторые графические программы не могли бы работать, но большинство программ прокладывает себе путь. Посмотрите следующие ссылки

help.ubuntu.com/14.04/serverguide/openssh-server.html

askubuntu.com/questions/886313/what-is-the-simplest-way-to-have-remote-gui-access...

1
ответ дан 7 December 2019 в 15:44

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

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