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

Ключ

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

...

Метод используется для запуска вспомогательной сторонней программы. Стандартный вывод этой программы будет возвращён как результат метода spawn. Программа запускается с правами пользователя polkitd.

Если при вызове сторонней программы произошла ошибка или программа завершилась не с кодом 0, то метод spawn прерывается с ошибкой исключения.

Если сторонняя программа не завершилась в течение 10 секунд, то она принудительно закрывается.

См. 


Метод: polkit.log( message );

...

Действие команды "hostnamectl hostname <имя_узла>" описано в файле /usr/share/polkit-1/actions/org.freedesktop.hostname1.policy.
Действие программы GParted описано в файле /usr/share/polkit-1/actions/org.gnome.gparted.policy.

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

Правило:

  • используется, когда пользователь вводит команду reboot для перезапуска операционной системы;
  • запускает стороннюю программу "/opt/company/bin/user-may-reboot", в качестве аргумента которой передаётся имя пользователя, запросившего действие;
  • программа "/opt/company/bin/user-may-reboot" каким-то образом решает, можно или нет пользователю перезапустить систему;
  • если сторонняя программа завершилась в течение 10 секунд с кодом завершения 0, то действие, запрошенное пользователем, выполнится без запроса пароля;
  • иначе у пользователя запрашивается пароль администратора для выполнения действия.
Блок кода
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.login1.reboot") == 0) {
        try {
            // user-may-reboot exits with success (exit code 0)
            // only if the passed username is authorized
            polkit.spawn(["/opt/company/bin/user-may-reboot",
                          subject.user]);
            return polkit.Result.YES;
        } catch (error) {
            // Nope, but do allow admin authentication
            return polkit.Result.AUTH_ADMIN;
        }
    }
});

Каталоги

КаталогОписание
/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.

Примеры описаны в статье.

...