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
.