...
Рисунок 4. Окно агента аутентификации polkit-kde-authentication-agent-1. Подробности
Polkit-действия
Вместе с программой, поддерживающей polkit-авторизацию, устанавливается файл с описанием действий, выполняемых программой.
| Предупреждение |
|---|
Не следует вносить какие-либо изменения в файлы Для изменения поведения системы авторизации polkit необходимо использовать правила авторизации (см. соответствующий подраздел). |
Для использования polkit привилегированная программа должна иметь набор действий. Каждое действие соответствует операции, которую пользователь может запросить выполнить у привилегированной программы. Действия Действия, которые может выполнить привилегированная программа, описываются в XML-файлах файле с расширением .policy, которые устанавливаются в каталог . Файл хранится в каталоге /usr/share/polkit-1/actions/.
| Предупреждение |
|---|
Для изменения поведения системы авторизации polkit следует использовать правила авторизации. Изменения, сделанные в |
Пример описания привилегированной программы, использующей polkit, в каталоге /usr/share/polkit-1/actions/ храниться файл с расширением .policy. В файле описаны действия, выполняемые программой.Пример файла org.freedesktop.hostname1.policy с описанием действия, соответствующего команде "host", находящегося в файле namectl namectl hostname <имя_узла>org.freedesktop.hostname1.policy:
| Блок кода |
|---|
<?xml version="1.0" encoding="UTF-8"?> <!--*-nxml-*-->
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"https://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
SPDX-License-Identifier: LGPL-2.1-or-later
...
-->
<policyconfig>
<vendor>The systemd Project</vendor>
<vendor_url>https://systemd.io</vendor_url>
<action id="org.freedesktop.hostname1.set-hostname">
<description gettext-domain="systemd">Set hostname</description>
<message gettext-domain="systemd">Authentication is required to set the local hostname.</message>
<defaults>
<allow_any>auth_admin_keep</allow_any>
<allow_inactive>auth_admin_keep</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
...
</policyconfig> |
В файле *.policy отдельное действие описывается в блоке каждому действию соответствует блок action. Название действия указывается в атрибуте параметре id элемента action.
В элементе description дано описание descriptionуказывается описание действия. Возможна локализация описания.
В элементе message дано указывается сообщение, которое отображается в окне агента аутентификации , когда у пользователя запрашивается пароль. Возможна локализация сообщения.для информирования пользователя.
В блоке defaults описываются требования указываются требования к авторизации пользователей:
- элемент
allow_any– задаёт требования для любого пользователя. Необязательный элемент. - элемент
allow_inactive– задаёт требования для пользователей с неактивной сессиейнеактивным пользовательским сеансом. Необязательный элемент. - элемент
allow_active– задаёт требования для пользователей с активной сессиейактивным пользовательским сеансом. Необязательный элемент.
Каждый элементallow_any,allow_inactive,allow_activeможет должен содержать одно из значений:
-no– пользователь не авторизовандействие запрещено пользователю;
-yes– пользователь авторизовандействие разрешено пользователю;
-auth_self– пользователь сессии, в которой запущен агент аутентификации, должен ввести свой пароль для прохождения авторизации;
-auth_admin– пользователь должен ввести пароль администратора для прохождения авторизации;
-auth_self_keep– аналогичноauth_self, только успешная авторизация сохраняется на небольшой промежуток времени (e.g. five minutes);
-auth_admin_keep–аналогичноauth_admin, только успешная авторизация сохраняется на небольшой промежуток времени (e.g. five minutes).
...