Primeiro, observe que a função de desligamento do ConsoleKit considera "usuário único" e "vários usuários" como duas situações diferentes - desligar o sistema sempre requer autenticação de administrador se outros usuários estiverem logados.
Todas essas ações são gerenciadas pelo PolicyKit. Se você quiser ajustar as políticas, você pode fazê-lo conforme descrito em polkit (8) - /etc/polkit-1/rules.d/20-disallow-shutdown.rules :
polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.consolekit.system.stop" ||
action.id == "org.freedesktop.consolekit.system.restart") &&
subject.isInGroup("users")) {
return subject.active ? polkit.Result.AUTH_ADMIN : polkit.Result.NO;
}
});
O PolicyKit 0.105 e versões anteriores documentam isso em pklocalauthority (8) - /etc/polkit-1/localauthority/50-local.d/20-disallow-shutdown.pkla :
[Disallow shutdown] Identity=unix-group:users Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart ResultAny=no ResultInactive=no ResultActive=auth_admin
Os Action s estão listados no ConsoleKit arquivo de política ou executando pkaction .