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

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

/usr/bin/xhost +local:

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

/usr/bin/xhost +local:

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

8
задан 2 November 2012 в 10:43

7 ответов

Команде 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.

0
ответ дан 2 November 2012 в 10:43

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

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

export DISPLAY=":0.0"
xhost +
openbox

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

0
ответ дан 2 November 2012 в 10:43

У меня была такая же проблема с 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
ответ дан 2 November 2012 в 10:43

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

xhost +local:
0
ответ дан 2 November 2012 в 10:43

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

xhost +local: > /dev/null

0
ответ дан 2 November 2012 в 10:43

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

0
ответ дан 2 November 2012 в 10:43

Вот вариант ответа @ 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.

0
ответ дан 2 November 2012 в 10:43

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

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