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

Ключ

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

...

В результате пользователь, входящий в группу 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/
/usr/share/polkit-1/rules.d/

Каталоги rules-файлов с правилами авторизации, созданными поставщиком операционной системы или системным администратором
/etc/polkit-1/localauthority/
/var/lib/polkit-1/localauthority/

Каталоги с правилами авторизации в устаревшем pkla-формате. Эти правила будут работать, если установлен пакет polkitd-pkla (при установке ОС устанавливается по умолчанию).

В будущих версиях ОС возможен отказ от поддержки pkla-формата, из-за чего потребуется переписать правила в JavaScript-формате

/usr/share/doc/polkitd/examples/Каталог содержит примеры правил авторизации

...