Primeiro, observe que isso não é um comportamento universal. Nem todos os sistemas Linux são configurados dessa maneira e, na verdade, não posso nomear nenhuma distribuição que configure as coisas dessa maneira por padrão, sem fazer uma pesquisa séria. Na maioria dos casos, qualquer sistema Linux exigirá privilégios de root independentemente (isso é o que a maioria dos sistemas faz), ou permitirá que qualquer um em um grupo particular faça isso, ou permitirá que todos façam isso (embora isso seja raro, pois é um buraco de segurança bastante significativo, permitindo um ataque DoS trivial se um serviço de rede for comprometido).
Por quê?
Por que é bem simples, é muito fácil desligar o sistema acidentalmente remotamente quando alguém está tentando usá-lo. Ao exigir presença física no console (o que você está chamando de sessão normal) ou prova de autoridade sobre o sistema (autenticando via sudo
para obter privilégios de root), o sistema está tornando muito mais difícil para tal situação acontecer. A implicação é que, estando fisicamente presente no sistema ou fornecendo credenciais raiz, você tem autoridade suficiente para que não importe se alguém está usando o sistema.
Como?
Isso é um pouco mais difícil de responder sem saber muito mais sobre o sistema em questão, mas alguns métodos vêm à mente:
- Você pode fazer alguns truques bem precisos com recursos do sistema de arquivos para permitir isso, mas é preciso refazer isso toda vez que os comandos forem atualizados.
- No caso de systemd,
shutdown
,reboot
epoweroff
são todos fornecidos pelo systemd e acabam sendo equivalentes a vários subcomandossystemctl
. Por causa disso e do rastreamento de sessão feito porlogind
, deve ser possível impor restrições como essa facilmente.