...
| Блок кода |
|---|
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.hostname1.set-hostname") {
return polkit.Result.YES;
}
return polkit.Result.NOT_HANDLED;
}); |
Команде "hostnamectl hostname <имя_узла>" соответствует действие "org.freedesktop.hostname1.set-hostname".
Права по умолчанию на выполнение действия заданы в файле /usr/share/polkit-1/actions/org.freedesktop.hostname1.policy..freedesktop.hostname1.set-hostname".
Права по умолчанию на выполнение действия заданы в файле /usr/share/polkit-1/actions/org.freedesktop.hostname1.policy.
Разрешение группе пользователей выполнять определённые команды и запрет на выполнение всех остальных
Правило:
- относится только к пользователям, состоящим в группе
group1; - разрешает запускать команду по изменению имени узла "
hostnamectl hostname <имя_узла>" без запроса пароля; - разрешает запускать программу GParted с запросом пароля администратора;
- запрещает запускать все остальные команды, которые находятся под управлением
polkitd:
| Блок кода |
|---|
polkit.addRule(function(action, subject) {
if ( ! subject.isInGroup("group1")) {
return polkit.Result.NOT_HANDLED;
}
if (action.id == "org.freedesktop.hostname1.set-hostname") {
return polkit.Result.YES;
}
if (action.id == "org.gnome.gparted") {
return polkit.Result.AUTH_ADMIN;
}
return polkit.Result.NO;
}); |
Запрет на запуск команды (файл файл 50-local-deny.rules из состава polkitd)
...
Пример правила, которое запрещает пользователю user1 изменять имя узла, а также запускать программу GParted:
| Блок кода |
|---|
polkit.addRule(function(action, subject) { if (subject.user !== "user1") { return polkit.Result.NOT_HANDLED; } if (action.id == "org.freedesktop.hostname1.set-hostname") { return polkit.Result.NO; } if (action.id == "org.gnome.gparted") { return polkit.Result.NO; } return polkit.Result.NOT_HANDLED; }); |
Команде по изменению имени узла "hostnamectl hostname <имя_узла>" соответствует действие "org.freedesktop.hostname1.set-hostname".
Права по умолчанию на выполнение действия заданы в файле /usr/share/polkit-1/actions/org.freedesktop.hostname1.policy.
...