gnu linux badge

Qual a diferença entre SU e SUDO?

Ambos os comandos são lembrados quando se deseja realizar tarefas com privilégios administrativos no GNU/LINUX — tais como configurar alguns aplicativos ou serviços do sistema, instalar software etc.
Ainda que sejam utilizados em situações similares, ambos são diferentes e têm propósitos e comportamentos distintos.

O comando su

De acordo com a documentação oficial, o su (Switch User) serve para mudar o usuário corrente ou invocar o superusuário.
Com ele, você pode “incorporar” qualquer usuário no sistema, basta informar qual:

su keitel 
Senha: 
keitel@ultra:/home/justin/temp$ whoami
keitel

Obviamente, você precisa saber a senha do usuário para o qual você está mudando.
Se você for o root (administrador do sistema em questão), não precisa fornecer senha alguma. O root pode incorporar quem ele quiser — o que é útil para analisar alguma situação do ponto de vista do próprio usuário.
Se você precisar alterar arquivos de configuração específicas de algum usuário do sistema, é interessante fazer isto “como ele mesmo” — evitando de, na hora de gravar os arquivos, que sejam gravados como se o seu dono fosse o root. Se isto acontecesse, o arquivo ficaria indisponível para aquele usuário.
Para resumir, a função do comando su é trocar de usuário.

O comando sudo

O comando sudo não tem a função de trocar de usuário (embora até possa ajudar a fazer isto).
Seu trabalho é permitir que um usuário comum possa rodar algum comando com permissões elevadas, sem a necessidade de “trocar de identidade”.
Para poder usar o sudo, é necessário ser integrante do grupo “sudo”.
Se um usuário, que não tem privilégios para tanto, tentar rodar algum comando com o uso do sudo, o evento será relatado ao administrador do sistema.

O significado de sudo é superuser do, ou seja superusuário faça.

O comando sudo permite, ainda, que você execute uma tarefa como outro usuário (que não seja o root):

sudo -u keitel whoami
keitel

Para rodar algum comando, com privilégios de superusuário, não há a necessidade de informar o usuário root. Basta preceder o comando desejado, do sudo:

sudo apt-get update

A senha que o sudo pede é sempre a sua.
Esta é uma forma de o administrador do sistema compartilhar privilégios administrativos limitados a outros usuários, sem revelar a senha de root.
Você pode, ainda, iniciar uma sessão como root, usando apenas a sua senha, com o sudo:

sudo -i

Se você já tem alguma experiência com o uso do su ou do sudo, fique à vontade para compartilhar com a gente, na sessão de comentários, como você prefere usar estes comandos.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

Um comentário sobre “Qual a diferença entre SU e SUDO?”

  1. Olá Elias, postagem muito bem escrita e muito clara, parabéns. Fico sempre entusiasmado quando percebo que existem várias outras pessoas com disponibilidade para ultrapassar as barreiras e apresentar um conteúdo de qualidade como este. Abraços.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *