Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Рисунок 4. Окно агента аутентификации polkit-kde-authentication-agent-1. Подробности

Polkit-действия

Вместе с программой, поддерживающей polkit-авторизацию, устанавливается файл с описанием действий, выполняемых программой.

Предупреждение

Не следует вносить какие-либо изменения в файлы .policy. При обновлении программ изменения будут потеряны.

Для изменения поведения системы авторизации polkit необходимо использовать правила авторизации (см. соответствующий подраздел). 

Для использования polkit привилегированная программа должна иметь набор действий. Каждое действие соответствует операции, которую пользователь может запросить выполнить у привилегированной программы. Действия Действия, которые может выполнить привилегированная программа, описываются в XML-файлах файле с расширением .policy, которые устанавливаются в каталог . Файл хранится в каталоге /usr/share/polkit-1/actions/.

Предупреждение

Для изменения поведения системы авторизации polkit следует использовать правила авторизации.

Изменения, сделанные в policy-файлах, будут утеряны при обновлении программ.


Пример описания привилегированной программы, использующей polkit, в каталоге /usr/share/polkit-1/actions/ храниться файл с расширением .policy. В файле описаны действия, выполняемые программой.Пример файла org.freedesktop.hostname1.policy с описанием действия, соответствующего команде "hostnamectl 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).

...