По какой-то причине мне нужно выполнить xhost +SI:localuser:root
, чтобы разрешить GUI для root
пользователя. Я поместил эту команду в сценарий оболочки, который будет выполняться при запуске upstart
. Когда я выполняю эту команду или этот скрипт вручную как другой пользователь, он работает нормально. Но когда этот скрипт выполняется upstart
, эта команда не работает.
Я также пытался выполнить эту команду как пользователь, отличный от root
в скрипте, как
sudo -H -s otheruser xhost +SI:localuser:root
. Это также не работает.
Как я могу разрешить GUI root
пользователю при запуске системы?
Спасибо за ваше время!
"GUI для root
пользователя" считают вредным*, но, здесь является объяснением Вашей проблемы:
xhost
говорит X-серверу, что он не может принять соединения от других хостов.
, Когда upstart
запускает Ваш скрипт, никакой пользователь не вошел в систему и запустил X-сервер. Поэтому xhost
не имеет никого, чтобы говорить.
необходимо задержать выполнение Вашего xhost
команда после входа в систему. xhost
также потребности определение DISPLAY
переменная среды (таким образом, это может найти X-сервер). man X
шоу формат DISPLAY
: hostname:displaynumber.screennumber
.
Ответ: Вы не можете работать xhost
до [1 111] - контекст не является правильным.
root
всесильно, и графические программы не показывают Вам всем, что они делают.