В современных системах какая-то модная дичь, позволяющая любому активному пользователю выключать, суспендить или перезагружать компьютер. Правила эти прописаны в /usr/share/polkit-1/actions/org.freedesktop.login1.policy
. Редактировать этот файл не рекомендуется, т.к. он перезапишется при обновлении. Вместо этого они предлагают создать .rules файл, например в /usr/share/polkit-1/rules.d/
.
Ок, создал файл /usr/share/polkit-1/rules.d/local.shutdown.rules
polkit.addRule(function(action, subject) {
if (
action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.reboot-ignore-inhibit" ||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.power-off-ignore-inhibit" ||
action.id == "org.freedesktop.login1.power-off-multiple-sessions" ||
action.id == "org.freedesktop.login1.halt" ||
action.id == "org.freedesktop.login1.halt-multiple-sessions" ||
action.id == "org.freedesktop.login1.halt-ignore-inhibit" ||
action.id == "org.freedesktop.login1.suspend" ||
action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
action.id == "org.freedesktop.login1.suspend-ignore-inhibit" ||
action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
action.id == "org.freedesktop.login1.hibernate-ignore-inhibit"
) {
return polkit.Result.AUTH_ADMIN;
}
});
Однако нифига, по прежнему из диалога входа SDDM и из меню KDE залогиненного пользователя по прежнему можно перезагрузить и выключить без запроса прав. Что за фигня?
Понавыдумали всякую дичь переусложнённую...
Система Ubuntu 18.04, если это что-то значит.