Passo 1: Aguarde alguns meses até que o Debian Stretch seja lançado - você precisa pelo menos do systemd v227, com commits 2ac3930f (polkit checando por /sbin/halt
) e 88ced61b (dados estendidos do polkit para systemctl halt
etc.)
Passo 2: Crie uma regra de polkit em ... Na verdade, não, isso não será suficiente, porque mesmo o Stretch ainda tem polkit v0.105 , que ainda não suportava as regras baseadas em JS; apenas o formato .pkla
consideravelmente mais limitado. Dito isso, v0.113 é finalmente em "experimental".
Mas se você atualizar para o systemd ≥v227 e polkit ≥v0.113, uma regra como essa deve funcionar:
/* copy to /etc/polkit-1/rules.d/systemd-allow-halt.rules */
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
action.lookup("unit") == "halt.service")
{
return polkit.Result.YES;
}
});
Então, ensina-se a digitar systemctl poweroff
. "Halt" não é o comando normal de desligamento; é o comando para literalmente parar a máquina - sem desligá-la. Não é muito útil.
Se você achar útil, use sudo :
# /etc/sudoers
ALL ALL=(root) NOPASSWD: /usr/bin/systemctl halt, /sbin/halt