...
- пользователю, входящему в группу astra-admin;
- разрешается разрешено без ввода пароля ("return polkit.Result.YES");
- запускать команду systemctl (название действия "org.freedesktop.systemd1.manage-units");
- для перезапуска (action.lookup("verb") === "restart");
- службы apt-daily (action.lookup("unit") === "apt-daily.service").
...
В результате пользователь, входящий в группу 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(return polkit.Result.NOT_HANDLED;
}); |
Правилом задаётся:
- пользователю guest;
- запрещено ("return polkit.Result.NO");
- изменение сетевых настроек в программе NetworkManager (название действия "org.freedesktop.NetworkManager.
...
Правилом задаётся:
- пользователю 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.servicesettings.modify.system").
Скопировать файл в каталог /etc/polkit-1/rules.d/ и изменить 50 на 00, чтобы правило гарантированно срабатывало раньше других правил.
...