Недостаточно прав в сетевом менеджере, даже если установлена ​​политика polkit

1849
DanielFetchinson

При работе от имени обычного пользователя nm-applet не позволяет выбрать беспроводную сеть с надписью «недостаточно прав». Но я отредактировал файл политики polkot

/usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy

иметь <allow_any> yes </ allow_any> для всего. Чтобы быть уверенным, у меня также есть <allow_active> yes </ allow_active> и <allow_inactive> yes </ allow_inactive>.

Все это в Fedora 17 (polkit-0.104, NetworkManager-0.9.4) без запуска gnome3, только gnome-settings-daemon.

polkitd, dbus-daemon и dbus-launch все работают. В чем может быть причина?

2
Какой дистрибутив? Или, по крайней мере, сообщите нам, какую версию polkit и networkmanager вы используете. Они сильно изменились с момента их создания. Horn OK Please 11 лет назад 2
Добавлена ​​информация о версии: fedora 17 DanielFetchinson 11 лет назад 1
Оказывается, решение здесь: http://blog.falconindy.com/articles/back-to-basics-with-x-and-systemd.html Запуск X вручную с помощью startx и polkit - это не круто вместе :) Но вы говорите "startx - vt01" тогда все будет хорошо. DanielFetchinson 11 лет назад 2

1 ответ на вопрос

1
ILMostro_7

Как указано в ссылке, приведенной в комментарии ОП:

Оказывается, решение здесь: 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.

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