Как указано в ссылке, приведенной в комментарии ОП:
Оказывается, решение здесь: blog.falconindy.com/articles/… Ручной запуск X с помощью startx и polkit - это не круто вместе :) Но вы говорите «startx - vt01», тогда все будет хорошо. - Даниил 19 октября '12 в 15:54
Ряд проблем может возникнуть с аутентифицированными сеансами, когда пользователь запускает X
сервер с консоли startx
без каких-либо параметров; очевидно, новый терминал запускается с сеансом Xserver, где установленная аутентификация изнутри сеанса консоли не «передается» во вновь созданный X-сеанс.
В результате этой «потери аутентификации» непривилегированному пользователю не разрешается «говорить с привилегированными процессами» и / или запрашивать аутентификацию.
Предлагаемый обходной путь - запустить X
сервер с консоли с текущим номером VT, переданным в качестве параметра, например:
xinit -- vt01
Это приведет xinit
к запуску X
сервера в том же терминале (с аутентифицированным сеансом) вместо запуска нового TTY.
Точно так же, согласно комментарию к этой ссылочной статье, systemd-logind
помещает соответствующий vt в переменную окружения $XDG_VTNR
; Таким образом, можно создать короткий сценарий или alias
облегчить правильный процесс xinit, включив
exec /usr/bin/X -nolisten tcp vt$XDG_VTNR "$@"
Примечание
. Версия Arch-linux xorg-xinit
по умолчанию включает эту строку xorg-xinit-1.3.2-3
, согласно сообщению в блоге на blog.falconindy.com.