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

Ключ

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

...

В результате пользователь, входящий в группу astra-admin сможет запускать команду "systemctl restart apt-daily" без использования команды sudo и без запроса пароля от polkitd.

Разрешение любому пользователю изменять имя

...

узла

Пример правила, которое позволяет любому пользователю выполнить выполнять команду "hostnamectl hostname <имя_узла>" без запроса пароля администратора:

...

Команде "hostnamectl hostname <имя_узла>" соответствует действие "org.freedesktop.hostname1.set-hostname". 
Права по умолчанию на выполнение действия заданы в файле /usr/share/polkit-1/actions/org.freedesktop.hostname1.policy.

...

Скопировать файл в каталог /etc/polkit-1/rules.d/ и изменить 50 на 00, чтобы правило гарантированно срабатывало раньше других правил.

Запрещение определённому пользователю выполнять ряд команд

Пример правила, которое запрещает пользователю 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;
    }
});

Команде по изменению имени узла "hostnamectl hostname <имя_узла>" соответствует действие "org.freedesktop.hostname1.set-hostname". 
Права по умолчанию на выполнение действия заданы в файле /usr/share/polkit-1/actions/org.freedesktop.hostname1.policy.

Команде GParted "/usr/sbin/gparted" соответствует действие "org.gnome.gparted". 
Права по умолчанию на выполнение действия заданы в файле /usr/share/polkit-1/actions/org.gnome.gparted.policy.


У пользователя не будет запрашиваться пароль, а сразу будет выведено сообщение о запрете на выполнение команды.

Например, если пользователь user1 запустит запрещённую команду "hostnamectl hostname <имя_узла>", то в ответ он получит сообщение:

Блок кода
Could not set transient hostname: Access denied

Каталоги

КаталогОписание
/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/Каталог содержит примеры правил авторизации: 50-local-allow.rules и 50-local-deny.rules, описание которых дано в статье

...