Qualquer pessoa pode executar shutdown , mas o acionamento de um sistema requer privilégios de root. Mas shutdown não é setuid, e, portanto, somente o root pode com êxito executá-lo. O programa shutdown é bom o suficiente para verificar seus privilégios e avisar se houver algum problema, mas mesmo que ele tenha tentado ingenuamente um desligamento do sistema, nada acontecerá.
GLENDOWER: I can call spirits from the vasty deep.
HOTSPUR: Why, so can I, or so can any man; But will they come when you do call for them?
(from Henry IV)
shutdown não é diferente de /bin/rm . Todos podem executá-lo, mas um usuário comum não pode remover /etc ou o diretório pessoal de outro usuário.
Especificamente: Apenas um processo executado com privilégios de root (UID efetivo 0) pode direcionar o sistema init para interromper os serviços do sistema , encerrar todos os processos do usuário e emitir a chamada de sistema que realmente interrompe a máquina. (Se shutdown fosse setuid, ele seria executado como root, não importando quem invocasse; mas não é.)
Que tal chamar shutdown de uma GUI, por ex. com controle-alt-del? É importante perceber que, nesse caso, shutdown é iniciado diretamente por init e ele é executado com privilégios de root. Portanto, todos os usuários que chegam ao console podem desativá-lo. Se isso não for desejável, control-alt-delete executará shutdown -a . (Veja a documentação que @ some1 citou em sua resposta). Isso diz ao shutdown para verificar se o usuário atualmente logado está autorizado a executá-lo. Mas isso é relevante apenas porque shutdown está sendo executado como root neste cenário.