Как указано в ссылке, приведенной в комментарии ОП:
Оказывается, решение здесь: 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 "$@"
Заметка
Версия xorg-xinit
Arch-linux по умолчанию включает эту строку, начиная с xorg-xinit-1.3.2-3
, согласно сообщению в блоге на blog.falconindy.com