...
Команде "hostnamectl hostname <имя_узла>" соответствует действие "org.freedesktop.hostname1.set-hostname".
Права по умолчанию на выполнение действия заданы в файле /usr/share/polkit-1/actions/org.freedesktop.hostname1.policy.
...
Запрещение пользователю запускать ряд команд (файл с примером 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;
}
return polkit.Result.NOT_HANDLED;
}); |
Не показано правило, запрещающее запуск программы PackageKit, которая не используется в Astra Linux.
Правилом задаётся:
- пользователю guest;
- запрещено ("return polkit.Result.NO");
- изменение сетевых настроек в программе NetworkManager (название действия "org.freedesktop.NetworkManager.settings.modify.system").
Скопировать файл в каталог /etc/polkit-1/rules.d/ и изменить 50 на 00, чтобы правило гарантированно срабатывало раньше других правил.
Запрещение пользователю запускать ряд команд
Правило:
- относится только к пользователю
guest; - запрещает изменять сетевые настройки в программе NetworkManager;
- запрещает запускать команду
hostnamectlдля изменения настроек узла.
Примечание. В файле50-local-deny.rulesзадано правило для программы PackageKit, которая отсутствует в Astra Linux - относится только к пользователю
user1; - запрещает запускать команду по изменению имени узла "
hostnamectl hostname <имя_узла>"; - запрещает запускать программу GParted "
/usr/sbin/gparted"; - доступ к остальным командам определяется другими существующими правилами, а также правами доступа по умолчанию в
policy-файлах:
| Блок кода |
|---|
polkit.addRule(function(action, subject) {
if (subject.user !== "user1guest") {
return polkit.Result.NOT_HANDLED;
}
if (action.id == "org.freedesktop.NetworkManager.hostname1.set-hostnamesettings.modify.system") {
return polkit.Result.NO;
}
if (action.id == .indexOf("org.gnomefreedesktop.hostname1.gparted") == 0) {
return polkit.Result.NO;
}
returnreturn polkit.Result.NOT_HANDLED;
}); |
Действие команды "hostnamectl hostname <имя_узла>" для изменения сетевых настроек в программе NetworkManager описано в файле /usr/share/polkit-1/actions/org.freedesktop.hostname1NetworkManager.policy.
Действие программы GParted описано в файле Действия для команды hostnamectl описаны в файле /usr/share/polkit-1/actions/org.gnomefreedesktop.gpartedhostname1.policy.
Запрещение группе пользователей запускать все команды, кроме указанных
...