Spawn GUI из сервиса - PullRequest
       81

Spawn GUI из сервиса

0 голосов
/ 25 июня 2018

У меня есть служба, работающая от имени пользователя root в системе linux, которая запускается через systemd. Этот сервис в какой-то момент может вызвать GUI в текущей среде входа пользователя (я получаю значения Display и Xauth из Logind через DBUS). Запуск графического интерфейса работает, но среда не работает.

В настоящее время графический интерфейс запускается через fork и execvp. Перед вызовом execvp привилегии сбрасываются с помощью setuid и setgid.

Каким будет правильный способ запуска процесса с правильными переменными среды? В настоящее время при попытке использовать, например, policykit из приложения, я получаю сообщение об ошибке, что текущий /dev/tty не может быть найден и т. Д.

Уместно ли использовать su -l? Или есть другие способы запустить процесс от имени другого пользователя?

1 Ответ

0 голосов
/ 25 июня 2018

su позволяет указать пользователя для запуска, например:

su nonrootuser -c "/usr/bin/mygui"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...