настройка xhost при загрузке


8

Я могу установить xhost при загрузке в Fedora, отредактировав /etc/gdm/Init/Defaultи добавив, например:

/usr/bin/xhost +local:

Как можно сделать подобное в Ubuntu? Я хочу, чтобы

/usr/bin/xhost +local:

Команда выполняется, когда система сидит в приглашении входа в систему.

Ответы:


11

xhostКоманда нуждается в активном Х - сервер для запуска, он может работать на экране входа в систему , например , когда 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.


1
вам может потребоваться сделать исполняемый скрипт xhost.sh с помощью: chmod + x /home/user/bin/xhost.sh
Джордж Литос

Работает в Xubuntu 18.04, но убедитесь, что скрипт исполняется, как упомянул @George Litos, иначе ваша система не загрузится.
Хосе Томас Тосино

2

Это сработало для меня:

Редактировать ~/.xinitrc:

export DISPLAY=":0.0"
xhost +
openbox

Примечание: в моей конкретной настройке я использую только openbox . Обычно этот файл пуст или отсутствует в Ubuntu. Я предполагаю, что вы можете удалить строку "openbox", и она будет работать, но у меня нет способа проверить это прямо сейчас. Если это не работает, замените последнюю строку для вашей команды оконного менеджера.


1

~/.xinitrcне работал у меня на Ubuntu 14.04, но следующие в ~/.profileсделал. При каждом входе в систему, GUI / терминал / SSH / и т. Д. ..., скрипт будет запускаться, поэтому я перенаправляю, stdoutчтобы заставить вывод замолчать.

xhost +local: > /dev/null


1

У меня была такая же проблема с 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пользователя.


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.


-1

Отредактируйте файл /etc/rc.local(с помощью sudo) и добавьте команду перед последней командой ( exit 0).


1
Это не будет работать (и я старался никогда, и это не работает). Потому что у этого скрипта не будет прав доступа для изменения этого параметра. Это должно быть сделано как пользователь lightdm?
Юртесен

-1

Добавьте следующую строку в /etc/xdg/lxsession/LXDE/autostart

xhost +local:
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.