...
- используется, когда пользователь вводит команду 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;
}
}
}); |
...