
Acabei de observar algo estranho.
Conectado em um sistema archlinux como usuário não privilegiado, executei shutdown
. Como esperado, ele retornouMust be root.
Para minha surpresa, executá shutdown now
-lo (aparentemente!)nãoverifique se o usuário atual tem privilégios de root. Simplesmente desliga a máquina.
Tentei reproduzir isso em um tty e em um terminal no Plasma DE.
Estou executando o Archlinux com um kernel 4.2.2 com pacotes atuais.
Eu não acho que isso esteja relacionado comPolíticas de GUI.
dr: desligando o sistema como não root comshutdown now
Responder1
Na verdade, não é minha resposta – apenas repostando uma resposta que, infelizmente, foi excluída por razões desconhecidas.
No Arch Linux, sob certas circunstâncias, você pode muito bem desligar/reiniciar/hibernar... seu PC sem privilégios de root.
A página Wiki do Arch Linux sobre gerenciamento de energia no Systemdafirma:
polkit é necessário para gerenciamento de energia como um usuário sem privilégios. Se você estiver em uma sessão de usuário local do systemd-logind e nenhuma outra sessão estiver ativa, os seguintes comandos funcionarão sem privilégios de root:
desligamento do systemctl
reinicialização do systemctl
suspensão do systemctl
hibernação do systemctl
Para verificar se você tem permissão para fazer isso (ou seja, você tem o polkit instalado e sua sessão não está interrompida), você pode usar o seguinte comando:
$ loginctl show-session $XDG_SESSION_ID --property=Active
Active=yes
Em outros systemd
sistemas, como o meu Debian 8, isso não é possível apesar de ter a mesma resposta a este comando:
$ loginctl show-session $XDG_SESSION_ID --property=Active
Active=yes
$ systemctl reboot
==== AUTHENTICATING FOR org.freedesktop.login1.reboot ===
Authentication is required for rebooting the system.
Authenticating as: ,,, (myusername)
Password:
o que indica que polkit
foi configurado por padrão de diferentes maneiras no Arch Linux e no Debian. O pessoal do Arch Linux vê uma vantagem nisso sudo
, na medida em que afirma, ema página wiki no Polkit:
Polkit é usado para controlar privilégios em todo o sistema. Ele fornece uma maneira organizada para processos não privilegiados se comunicarem com processos privilegiados. Em contraste com sistemas como o sudo, ele não concede permissão de root para um processo inteiro, mas permite um nível mais refinado de controle da política centralizada do sistema.
Como sempre, YMMV.
Quanto a shutdown now
, meu palpite é que é um redirecionamento para systemctl poweroff
, que é permitido a um usuário não privilegiado.