...
В набор программ polkit входят:
| Программа | Описание |
|---|---|
| polkitd | Менеджер авторизации. Системная служба |
| pkcheck | Программа для проверки наличия у процесса права на выполнение определённого действия |
| pkaction | Программа для вывода описания polkit-действия |
| pkexec | Программа для запуска команды от имени другого пользователя |
| pkttyagent | Текстовой агент аутентификации |
...
- Создать файл
/etc/polkit-1/rules.d/10-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'Необходимо настроить мандатный контроль целостности для файла 10-default.rules либо, как временный вариант, разместить правило в уже существующем rules-файле.
- Разрешить службе polkitd выводить в системный журнал отладочные сообщения.
Для этого в файле 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 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]
Каталоги
...
| Каталог | Описание | ||
|---|---|---|---|
| /usr/share/polkit-1/actions/ /usr/share/polkit-1/rules.d/ | Каталог policy-файлов с описаниями действий программ. | ||
/etc/polkit-1/rules.d/ | Каталог rules-файлов с правилами авторизации, созданными системным администратором. | ||
/usr/share | /etc/polkit-1/localauthority/ /var/lib/polkit-1/localauthority/ | Debian 13: For consistency with upstream and other distributions, the polkit ... as changed the syntax and location for local policy rules. You should now write local rules for customizing the security policy in JavaScript, and place them at /etc/polkit-1/rules.d/*.rules. Previously, rules could be written in pkla format, and placed in subdirectories of | Каталог rules-файлов с правилами авторизации, созданными поставщиком операционной системы. |
| /etc/polkit-1/localauthority or / /var/lib/polkit-1/localauthority/ | Каталоги с правилами авторизации в устаревшем pkla-формате. Эти правила будут работать, если установлен пакет polkitd-pkla. Рекомендуется преобразовать правила в актуальный JavaScript-формат. However, .pkla files should now be considered deprecated, and will only continue to work if the polkitd-pkla package is installed. ...so any local policy overrides will need to be migrated to the JavaScript format. | ||
| /usr/share/doc/polkitd/examples/ | Каталог содержит примеры правил авторизации. |