Eu tive o mesmo problema com as máquinas que autenticam via Kerberos.
Você deve ver uma entrada de log em /var/log/syslog
como esta
WARNING: Unable to stop system: Authorization is required
É o daemon polkit
que está impedindo isso. O arquivo
/usr/share/polkit-1/actions/org.freedesktop.consolekit.policy
está controlando o comportamento disso. Existem 4 entradas
org.freedesktop.consolekit.system.stop
org.freedesktop.consolekit.system.stop-multiple-users
org.freedesktop.consolekit.system.restart
org.freedesktop.consolekit.system.restart-multiple-users
E os valores para cada entrada
<allow_inactive>xy</allow_inactive>
<allow_active>xy</allow_active>
Eles significam desligar e reinicializar o sistema e desligar / reinicializar quando outros usuários estão logados também (para checar o tipo who
no terminal). allow_inactive
significa geralmente sessões remotas (SSH, VNC), allow_active
são logins diretos via TTYs ou X. Então você precisa decidir quem deve ser capaz de reinicializar / desligar seu sistema.
Por padrão, um usuário conectado local pode reinicializar / desligar o sistema, mas quando houver outras sessões, por exemplo, uma sessão SSH aberta e você tentar reinicializar o sistema, você será desconectado. Em seguida, você precisa definir nas entradas org.freedesktop.consolekit.system.stop-multiple-users
e org.freedesktop.consolekit.system.restart-multiple-users
o valor allow_active como yes: <allow_active>yes</allow_active>
.