Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Команде "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.

Запрещение группе пользователей запускать все команды, кроме указанных

...