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

Ключ

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

...

  • используется, когда пользователь вводит команду reboot для перезапуска операционной системы;
  • запускает стороннюю программу "/opt/company/bin/user-may-reboot" , в от имени пользователя polkitd. В качестве аргумента которой программе передаётся имя пользователя, запросившего действие;
  • программа "/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) должна завершаться с кодом 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;
        }
    }
});

...