...
В результате пользователь, входящий в группу astra-admin сможет запускать команду "systemctl restart apt-daily" без использования команды sudo и без запроса пароля от polkitd.
Запрещение (пример правила 50-local-deny.rules из состава polkitd)
При установке пакета polkitd устанавливается файл /usr/share/doc/polkitd/50-local-deny.rules:
| Блок кода |
|---|
polkit.addRule(function(action, subject) {
if (subject.user !== "guest") {
// Continue to the next rules file for users other than guest
return polkit.Result.NOT_HANDLED;
}
if (action.id === "org.freedesktop.NetworkManager.settings.modify.system") {
// Don't allow reconfiguring NetworkManager
return polkit.Result.NO;
}
if (action.id.indexOf("org.freedesktop.packagekit.") === 0) {
// Don't allow anything involving PackageKit
return polkit.Result.NO;
}
return polkit.Result.NOT_HANDLED;
}); |
Правилом задаётся:
- пользователю guest;
- будет недоступно изменение сетевых настроек в программе NetworkManager (название действия "org.freedesktop.NetworkManager.settings.modify.system");
- запускать команду systemctl (название действия "org.freedesktop.systemd1.manage-units");
- для перезапуска (action.lookup("verb") === "restart");
- службы apt-daily (action.lookup("unit") === "apt-daily.service").
Скопировать файл в каталог /etc/polkit-1/rules.d/ и изменить 50 на 00, чтобы правило гарантированно срабатывало раньше других правил.
Каталоги
| Каталог | Описание |
|---|---|
| /usr/share/polkit-1/actions/ | Каталог policy-файлов с описаниями действий программ |
/etc/polkit-1/rules.d/ | Каталоги rules-файлов с правилами авторизации, созданными поставщиком операционной системы или системным администратором |
| /etc/polkit-1/localauthority/ /var/lib/polkit-1/localauthority/ | Каталоги с правилами авторизации в устаревшем pkla-формате. Эти правила будут работать, если установлен пакет polkitd-pkla (при установке ОС устанавливается по умолчанию). В будущих версиях ОС возможен отказ от поддержки pkla-формата, из-за чего потребуется переписать правила в JavaScript-формате |
| /usr/share/doc/polkitd/examples/ | Каталог содержит примеры правил авторизации |
...