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

Ключ

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

...

Более полная информация о правилах и их составлении дана на странице polkit или доступна по команде "man 8 polkit".

Настройка администратора операционной системы

...

(пример использования метода addAdminRule)

Файл В Astra Linux файл /usr/share/polkit-1/rules.d/50-default.rules содержит правило, которым пользователи группы astra-admin назначаются администраторами системы:

Блок кода
polkit.addAdminRule(function(action, subject) {
    return ["unix-group:astra-admin"];
});

...

Отладочное журналирование (пример использования метода log)

Прим. работает в Astra 1.8.3.7 Орёл, не работает в 1.8.3.7 Смоленск. - окт 16 11:27:46 astra-57029 polkitd[4481]: Insufficient integrity level of file '/etc/polkit-1/rules.d/10-default.rules'

Использовать только для отладки!

Примечание

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


Для примера сделаемСделаем, чтобы при вызове команды pkexec в системный журнал выводилась дополнительная информация о действии и о пользователе, запросившем это действие.Для этогозапустившем эту команду:

  1. Создать файл /etc/polkit-1/rules.d/0010-default.rules с правилом:
    Блок кода
    polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.policykit.exec") {
        polkit.log("action=" + action);
        polkit.log("subject=" + subject);
     }
    });
    где org.freedesktop.policykit.exec – название действия, соответствующего команде pkexec.

    Примечание

    В Astra Linux, использующем мандатный контроль целостности, после создания какого-либо нового файла с правилом: polkitd перестаёт работать, в системном журнале появляется запись:
    polkitd[5403]: Insufficient integrity level of file '/etc/polkit-1/rules.d/10-default.rules'



  2. Разрешить службе polkitd выводить в системный журнал отладочные сообщения (DEBUG).
    Для этого в файле systemd-юнита /usr/lib/systemd/system/polkit.service убрать из параметра ExecStart флаг --no-debug:
    Блок кода
    [Unit]
    Description=Authorization Manager
    Documentation=man:polkit(8)
    
    [Service]
    Type=dbus
    BusName=org.freedesktop.PolicyKit1
    ExecStart=/usr/lib/polkit-1/polkitd  --min-ilev-auth-admin=max
  3. Вывести в терминале системный журнал:
    Command

    sudo journalctl -f

  4. В другом терминале запустить команду:
    Command

    pkexec -u administrator echo "test"

  5. В выводе системного журнала появятся записи о действии "action=..." и пользователе "subject=...":
    Блок кода
    сен 22 12:51:44 astra-28739 polkitd[7867]: action=[Action id='org.freedesktop.policykit.exec' program='/usr/bin/echo' user.display='administrator' command_line='/usr/bin/echo test' user='administrator' polkit.message='Authentication is needed to run `$(program)' as user $(user.display)' polkit.gettext_domain='polkit-1' user.gecos='']
    
    сен 22 12:51:44 astra-28739 polkitd[7867]: subject=[Subject pid=4297 user='administrator' groups=administrator,tty,dialout,cdrom,floppy,audio,dip,video,plugdev,users,netdev,lpadmin,scanner,astra-admin,astra-console seat=null session='7' local=false active=true]

...