Я могу установить xhost при загрузке в Fedora, отредактировав /etc/gdm/Init/Default
и добавив, например:
/usr/bin/xhost +local:
Как подобное можно сделать в Ubuntu? Я хочу, чтобы команда
/usr/bin/xhost +local:
выполнялась, когда система находится в приглашении для входа в систему.
Команде xhost
необходим активный X-сервер, который можно запустить на экране входа в систему, например, при загрузке lightdm
. Вы можете включить его, отредактировав /etc/lightdm/lightdm.conf
и добавив строку:
display-setup-script=/home/user/bin/xhost.sh
пример /etc/lightdm/lightdm.conf
файл:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
display-setup-script=/home/user/bin/xhost.sh
пример /home/user/bin/xhost.sh
файл:
#!/bin/bash
xhost +
Он работает на Ubuntu 12.04.1 LTS, и это было необходимо для включения Java-приложения, которое нуждалось в X и было запущено Tomcat 6.
Это сработало для меня:
Редактировать ~/.xinitrc
:
export DISPLAY=":0.0"
xhost +
openbox
Примечание: в моей конкретной настройке я использую только openbox . Обычно этот файл пуст или отсутствует в Ubuntu. Я предполагаю, что вы можете удалить строку "openbox", и она будет работать, но у меня нет способа проверить это прямо сейчас. Если это не сработает, замените последнюю строку для команды менеджера окон.
У меня была такая же проблема с Ubuntu 17.10. Возможно, моя система была неправильно настроена. В любом случае, в моем случае я добавил
xhost + SI:localuser:root > /dev/null
внизу моего файла ~/.bashrc
, и это сработало. Я не знаю, является ли это угрозой безопасности. Я разделяю это в случае, если кто-то еще находится в такой же ситуации, и верю, что добавление root в список привилегированных пользователей X-сервера должно быть в порядке.
Здесь предлагается http://ubuntuhandbook.org/index.php/2017/10/ubuntu-17-10-tip-graphical-apps-doesnt-launch-via-root-sudo-gksu/
Сначала вы можете проверить его непосредственно на терминале:
$ xhost + SI:localuser:root
$ xhost -
Вторая строка проверяет, что только те, кто в списке, имеют доступ к X-серверу. Затем попробуйте «Редактировать как администратор», после щелчка правой кнопкой мыши по файлу или директору выполнить
$ pkexec gedit
Если это не работает, то бессмысленно делать команду постоянной в ~ / .bashrc.
Чтобы быть более точным, я сначала выполнил
$ xhost
, чтобы увидеть, какие пользователи имели доступ к X-серверу. Я видел, что формат был SI:localuser:dominic
, где dominic
- мое имя пользователя. Итак, я использовал тот же формат SI:localuser:root
, чтобы добавить пользователя root
.
Добавить следующую строку в /etc/xdg/lxsession/LXDE/autostart
xhost +local:
~/.xinitrc
не работал для меня на Ubuntu 14.04, но следующее в ~/.profile
сработало. При каждом входе в систему, GUI / терминал / SSH / и т. Д. ..., скрипт будет запускаться, поэтому я перенаправляю stdout
, чтобы отключить вывод.
xhost +local: > /dev/null
Отредактируйте файл /etc/rc.local
(с sudo
) и добавьте команду перед последней командой (exit 0
).
Вот вариант ответа @ GeorgeLitos с этими изменениями:
/etc/lightdm/lightdm.conf
, так как это файл, принадлежащий системе, который может быть перезаписан при обновлении системы. Вместо этого используйте каталог расширений /etc/lightdm/lightdm.conf.d/
. Это также означает, что другие настройки не должны дублироваться там. Просто создайте файл (как пользователь root) /etc/lightdm/lightdm.conf.d/xhost.conf
со следующим содержимым:
[SeatDefaults]
display-setup-script=xhost +
Это работает в Ubuntu 16.04.5 LTS.