...
Более полная информация о правилах и их составлении дана на странице 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 в системный журнал выводилась дополнительная информация о действии и о пользователе, запросившем это действие.Для этогозапустившем эту команду:
- Создать файл
/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' - Разрешить службе 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
- Вывести в терминале системный журнал:
Command sudo journalctl -f
- В другом терминале запустить команду:
Command pkexec -u administrator echo "test"
- В выводе системного журнала появятся записи о действии "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]
...