История изменений
Исправление demsi, (текущая версия) :
Осилил man 8 polkit. Это было тяжко, так как в английском я полный нуль.
Также помогла статья на opennet'е. Странно статья датируется 2010 годом. Но в ней PolicyKit совсем другой, начиная от расположения и синтаксиса XML файлов с разрешениями, заканчивая командами пакета (синтаксис и название команд тоже другие).
Зато статья обьяснила принцип работы, что куда важнее.
Все решилось банальным редактированием XML файла с правилами для ConsoleKit. А именно - /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy
Как помните в своем сообщении я говорил, что в окошке написано:Действие: org.freedesktop.consolekit.system.restart-multiple-users. Кар раз оно и есть в выше указанном файле:
<action id="org.freedesktop.consolekit.system.restart-multiple-users">
<description>Restart the system when multiple users are logged in</description>
<message>System policy prevents restarting the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
Активная сессия это та в которой вы работаете. Неявные разрешения применяются ко всем пользователям. Существуют еще явные разрешения, для конкретных пользователей.
Возможные значения для allow_active и вообще для всех опций в секции defaults
no - не разрешать
yes - разрешать
auth_self - разрешить владельцу сессии если он введет свой пароль.
auth_admin - нужно ввести пароль root при каждом запросе
auth_self_keep - то же самое что и auth_self, но некоторое время после ввода пароля, снова пароль запрашивать не будет (Для выключения и перезагрузки компьютера, смысла не имеет).
auth_admin_keep - тоже самое что и auth_admin, но также некоторое время авторизация сохраняется (Для выключения и перезагрузки компьютера, смысла не имеет).
<action id="org.freedesktop.consolekit.system.restart-multiple-users">
...
<allow_active>yes</allow_active>
...
Вот и все. Заработало.
Правда некоторые вещи для меня до сих пор остались неясными. Почему например за перезагрузку и выключение компьютера отвечает ConsoleKit ?
Я где-то читал что он нужен для одновременной работы на одной системе нескольких независимых графических сеансов для различных пользователей. Но возможности «Сменить пользователя» у меня почему то нет. Хотя наверное это тоже чиниться.
Исходная версия demsi, :
Проблема решена
Осилил man 8 polkit. Это было тяжко, так как в английском я полный нуль.
Также помогла статья на opennet'е. Странно статья датируется 2010 годом. Но в ней PolicyKit совсем другой, начиная от расположения и синтаксиса XML файлов с разрешениями, заканчивая командами пакета (синтаксис и название команд тоже другие).
Зато статья обьяснила принцип работы, что куда важнее.
Все решилось банальным редактированием XML файла с правилами для ConsoleKit. А именно - /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy
Как помните в своем сообщении я говорил, что в окошке написано:Действие: org.freedesktop.consolekit.system.restart-multiple-users. Кар раз оно и есть в выше указанном файле:
<action id="org.freedesktop.consolekit.system.restart-multiple-users">
<description>Restart the system when multiple users are logged in</description>
<message>System policy prevents restarting the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
Активная сессия это та в которой вы работаете. Неявные разрешения применяются ко всем пользователям. Существуют еще явные разрешения, для конкретных пользователей.
Возможные значения для allow_active и вообще для всех опций в секции defaults
no - не разрешать
yes - разрешать
auth_self - разрешить владельцу сессии если он введет свой пароль.
auth_admin - нужно ввести пароль root при каждом запросе
auth_self_keep - то же самое что и auth_self, но некоторое время после ввода пароля, снова пароль запрашивать не будет (Для выключения и перезагрузки компьютера, смысла не имеет).
auth_admin_keep - тоже самое что и auth_admin, но также некоторое время авторизация сохраняется (Для выключения и перезагрузки компьютера, смысла не имеет).
<action id="org.freedesktop.consolekit.system.restart-multiple-users">
...
<allow_active>yes</allow_active>
...
Вот и все. Заработало.
Правда некоторые вещи для меня до сих пор остались неясными. Почему например за перезагрузку и выключение компьютера отвечает ConsoleKit ?
Я где-то читал что он нужен для одновременной работы на одной системе нескольких независимых графических сеансов для различных пользователей. Но возможности «Сменить пользователя» у меня почему то нет. Хотя наверное это тоже чиниться.