Por padrão, na maioria dos Unices, a conta "administrador", raiz, deve ser usada apenas com moderação. Existem apenas dois níveis de direitos de administrador, ou "super usuário", em um sistema Unix normal: você tem controle total de tudo ou não.
"Controle total" inclui contornar a maioria das verificações de permissão e atrapalhar completamente o sistema com uma simples digitação incorreta. Como um usuário comum, você pode excluir apenas seus próprios arquivos.
O utilitário su
mais antigo é usado junto com a senha raiz para assumir a identidade raiz, mas também pode ser usado para assumir identidades de outros usuários ou para executar comandos únicos como eles, já que você pertence ao grupo de usuários correto e conheça suas senhas.
su
é comumente usado pelo usuário raiz (em algum sistema Unix) para iniciar daemons (processos de serviço) que precisam ser executados sob identidades de usuário específicas para protegê-los de acessar áreas que deveriam não tem acesso a (normalmente servidores web, servidor SSH e afins). Isso pode ser feito em scripts de inicialização enquanto o sistema está inicializando.
su
é mais raramente usado interativamente (na linha de comando).
O utilitário sudo
requer um pouco mais de configuração, pois permite que um usuário execute comandos como outro usuário usando a senha deles (o que significa que uma senha root, por exemplo, não precisa para ser compartilhado), e também permite um controle refinado de quem pode fazer exatamente o quê. Pode-se, por exemplo, dar a um único usuário, ou a um grupo inteiro de usuários, a capacidade de montar um determinado disco, mas não desmontá-lo ou montar outros discos, ou instalar software usando comandos específicos, etc. Osudo
utility permite assumir identidades de outros usuários (não apenas root) para sessões interativas, ou para executar comandos únicos (se a configuração foi configurada dessa forma por outra pessoa com permissões de root).
Normalmente, é possível executar comandos únicos usando sudo
(daí o nome "superuser do"):
$ sudo apt-get install vim
ou
$ sudo shutdown -ph now
Usar sudo
desta maneira é preferível a usar sudo -s
e trabalhar com um shell raiz interativo, porque os comandos que você executa são registrados. pode-se refazer as ações no arquivo de log para ver onde (e quem) fez alguma coisa, seja para depuração ou para auditoria.
Se você estiver digitando em um prompt interativo interativo por um longo período de tempo, então você deve reconsiderar o que está fazendo e se isso realmente requer privilégios de root.
Como exemplo, a única vez que I exibe um prompt de raiz interativo é quando adiciono um usuário comum para mim mesmo em uma máquina recém-instalada ou quando realmente tenho alguns problemas sérios que me impedem até de fazer login como um usuário comum.
O OpenBSD (desde o release 5.8) possui um utilitário chamado doas
, que substitui sudo
na instalação padrão do sistema. Ele foi desenvolvido quando ficou claro que sudo
havia se tornado muito complexo para se adequar aos objetivos estabelecidos pelos desenvolvedores do OpenBSD. Seu uso é semelhante ao de sudo
, mas é mais fácil configurá-lo .