Aviso: até o final desta resposta, você provavelmente saberá mais sobre o Linux do que você queria
Por que reboot
e poweroff
exigem privilégios de root
Os sistemas operacionais GNU / Linux são multiusuário , assim como seus antecessores UNIX . O sistema é um recurso compartilhado e vários usuários podem usá-lo simultaneamente .
No passado, isso geralmente acontecia em terminais de computador conectados a um minicomputer ou um mainframe .
OpopularminicomputadorPDP-11.Umpoucogrande,pelospadrõesdehoje:)
Nosdiasdehoje,issopodeacontecerremotamentepelarede(geralmentevia
Umaconfiguraçãomulti-sede.FotodeTiagoVignatti
Naprática,podehavercentenasoumilharesdeusuáriosusandoomesmocomputadorsimultaneamente.Nãofariamuitosentidosealgumusuáriopudessedesligarocomputadoreimpedirquetodosousassem.
Qualéoriscodesegurançapornãoexigirqueissotenhaprivilégiosderoot?
Emumsistemamultiusuário,issoimpedeoqueéefetivamenteum
A GUI fornece uma maneira para qualquer usuário desligar ou reiniciar, então por que os comandos do terminal precisam ser executados como root?
Muitas distribuições do Linux não fornecem uma GUI. As distribuições Linux de desktop que normalmente são orientadas para um único padrão de usuário, portanto, faz sentido permitir isso a partir da GUI.
Possíveis razões pelas quais os comandos ainda exigem privilégios de root:
- A maioria dos usuários de uma distro orientada a desktop usará a GUI, não a linha de comando, então não vale a pena
- Consistência com convenções aceitas do UNIX
- (indiscutivelmente equivocada) segurança, pois evita que programas ou scripts ingênuos desliguem o sistema
Como a GUI pode apresentar o desligamento sem privilégios de root?
O mecanismo real irá variar dependendo do gerenciador de área de trabalho (GUI) específico. De um modo geral, existem vários mecanismos disponíveis para este tipo de tarefa:
- Executando a GUI em si como raiz (esperamos que isso não aconteça em nenhuma implementação apropriada ...)
- setuid
- sudo com NOPASSWD
- Comunicando o comando para outro processo que tenha esses privilégios, geralmente feito com D-Bus . Em GUIs populares, isso geralmente é gerenciado pelo polkit .
Em resumo
O Linux é usado em contextos extremamente variados - de mainframes, servidores e desktops a supercomputadores, telefones celulares e