- 1 1. Começando: O que é sudo?
- 2 2. Uso Básico do Comando sudo
- 3 3. O Arquivo sudoers e Controle de Acesso
- 4 4. Uso Avançado do sudo
- 5 5. Segurança e Melhores Práticas
- 6 6. Erros Comuns e Solução de Problemas
- 7 7. FAQ: Perguntas Frequentes Sobre o sudo
- 7.1 Q1. Qual a diferença entre sudo e su?
- 7.2 Q2. Preciso da senha root ao usar sudo?
- 7.3 Q3. Onde são registrados os logs do sudo?
- 7.4 Q4. Eu editei acidentalmente o arquivo sudoers. O que devo fazer?
- 7.5 Q5. Há uma maneira de obter privilégios de root sem usar sudo?
- 7.6 Q6. É seguro lançar aplicativos GUI usando sudo?
- 8 8. Conclusão
1. Começando: O que é sudo?
O Significado Básico e o Papel do sudo
Em sistemas Linux e semelhantes ao Unix, “sudo” é um comando crucial.
“sudo” é a abreviação de “superuser do” e é uma ferramenta para emprestar temporariamente privilégios de administrador (privilégios root) para executar comandos. Normalmente, usuários comuns não têm autoridade para realizar operações que afetam todo o sistema (como instalar pacotes ou alterar configurações do sistema). Contudo, ao usar o comando sudo, essas operações privilegiadas podem ser executadas de forma limitada.
Por exemplo, você pode executar o comando apt com privilégios root executando o seguinte comando:
sudo apt update
Assim, o sudo desempenha um papel no equilíbrio entre segurança e conveniência do sistema como um “mecanismo para usar privilégios de administrador de forma segura.”
Diferenças em relação ao comando su
Existe um comando su que tem um propósito semelhante ao sudo, mas há diferenças claras entre os dois.
susignifica “substituir usuário” e é um comando para trocar para outro usuário (principalmente root). Quando você usasu, as operações são realizadas de modo que você “se torna” completamente o usuário especificado.- Por outro lado,
sudoexecuta comandos com privilégios de administrador temporariamente emprestados enquanto permanece como o usuário atual.
Em outras palavras, su é um método de troca por sessão, enquanto sudo é um método de elevação de privilégios por comando. Essa diferença é significativa em termos de segurança; o sudo facilita o gerenciamento do histórico de operações e, em distribuições recentes, tornou‑se o método padrão.
Distribuições Linux Típicas onde o sudo é Usado
O sudo é usado por padrão em muitas distribuições Linux, e seu uso é particularmente presumido nas seguintes distribuições:
- Baseadas em Ubuntu (Ubuntu, Linux Mint, etc.) → Inicialmente, você não faz login diretamente na conta root, mas a gerencia com sudo.
- Baseadas em Debian → O sudo pode ser habilitado posteriormente, mas costuma ser recomendado como política de segurança.
- Baseadas em Fedora, CentOS e Red Hat → Embora seja possível usar a conta root, o uso do sudo também é comum.
Especialmente no Ubuntu, a conta root está desativada por padrão, e todas as operações administrativas são projetadas para ser realizadas via sudo. Portanto, entender o sudo é essencial para usuários do Ubuntu.
Por que “sudo sudo” é Pesquisado?
A palavra‑chave de busca “sudo sudo” pode parecer redundante à primeira vista, mas há casos em que ela é pesquisada com as seguintes intenções:
- Iniciantes que querem saber o significado e o uso do
sudoa digitam repetidamente para ênfase. - Usuários que encontraram problemas ao usar o
sudo(por exemplo,sudo: sudo: command not found) estão buscando soluções. - Usuários que viram exemplos de uso duplo de
sudoem scripts ou pipelines e ficaram curiosos.
Entendendo essas intenções de busca, os capítulos seguintes explicarão em detalhe o uso correto e os métodos de configuração do sudo, bem como a solução de problemas.
2. Uso Básico do Comando sudo
Sintaxe Básica do sudo
O formato básico do sudo é muito simples.
sudo [options] command
Por exemplo, para atualizar as informações dos pacotes do sistema, use o seguinte:
sudo apt update
Esse comando significa “executar apt update com privilégios root.”
Mecanismo de Autenticação por Senha e Cache
Na primeira vez que você usa o sudo, ou após um certo período tempo, o sistema solicitará que você insira a senha do seu usuário. Esse é um mecanismo para aumentar a segurança e evitar operações acidentais ou uso não autorizado por terceiros.
Depois de inserir a senha, ela é armazenada em cache por um determinado período (5 minutos por padrão no Ubuntu), e você pode omitir a digitação da senha ao usar o sudo novamente. Esse tempo pode ser alterado no arquivo sudoers.
Opções Mais Usadas
O sudo possui muitas opções para tornar as operações mais convenientes e flexíveis. Abaixo estão algumas das mais comuns.
-u (Executar como Outro Usuário)
Por padrão, ele usa privilégios de root, mas ao usar a opção -u, você pode executar comandos como qualquer usuário.
sudo -u www-data whoami
O resultado da execução será www-data, confirmando que “o comando foi executado como www-data, não como eu.”
-s (Iniciar um Shell)
O comando a seguir permite que você abra temporariamente um shell com privilégios de root.
sudo -s
Entretanto, as operações no estado de root devem ser realizadas com cautela.
-i (Entrar como Usuário Root Completo)
Esta opção recria um ambiente root mais completo. Como as variáveis de ambiente também são trocadas para as do root, torna-se uma sessão root no mesmo estado imediatamente após o login.
sudo -i
-l (Verificar Comandos Executáveis)
Você também pode verificar os comandos que pode executar usando sudo.
sudo -l
Isso é para verificar restrições de segurança e testar configurações de privilégios.
Pontos para Iniciantes Observarem
- Você precisa colocar um espaço após
sudo. Exemplo:sudoaptestá incorreto. - Se quiser executar vários comandos, você precisa envolver todo o comando entre aspas (
"ou') ou separá‑los com ponto e vírgula. - Tenha cuidado ao executar aplicativos GUI com
sudo, pois isso pode corromper arquivos de configuração (ex.:sudo gedit).
3. O Arquivo sudoers e Controle de Acesso
O que é o Arquivo sudoers?
O arquivo de configuração que controla o comportamento do comando sudo é /etc/sudoers no sistema. Este arquivo define quem pode executar quais comandos com sudo.
Por exemplo, é possível um controle de acesso refinado, como permitir que um determinado usuário execute apenas comandos específicos com sudo.
Essa flexibilidade possibilita a aplicação do princípio de segurança de conceder aos usuários apenas os privilégios mínimos necessários (princípio do menor privilégio).
Edição Segura com o Comando visudo
O arquivo /etc/sudoers não deve ser editado diretamente com um editor de texto.
Isso ocorre porque um erro de sintaxe pode tornar o sudo inutilizável, dificultando a recuperação. Portanto, é recomendado usar o comando visudo para editar.
sudo visudo
visudo realiza verificação de sintaxe ao salvar, permitindo uma edição segura.
Sintaxe Básica e Exemplos de Configuração
A sintaxe básica do arquivo sudoers é a seguinte:
username hostname = (runas_user) command(s)
Exemplo:
alice ALL=(ALL:ALL) ALL
Esta configuração permite que o usuário “alice” execute todos os comandos em todos os hosts como qualquer usuário.
Para adicionar mais restrições:
bob ALL=(ALL) /usr/bin/systemctl restart nginx
Esta configuração restringe o usuário “bob” a apenas poder executar o “comando de reinício do nginx” com sudo.
Controle por Grupo: O Grupo sudo
Em muitas distribuições, como o Ubuntu, usuários que pertencem ao grupo sudo recebem o privilégio de usar sudo.
%sudo ALL=(ALL:ALL) ALL
Ao escrever %sudo desta forma, a gestão por grupo se torna possível.
Para adicionar um usuário ao grupo sudo, use o comando a seguir:
sudo usermod -aG sudo username
Como Usar e Precauções para a Opção NOPASSWD
Se achar incômodo digitar sua senha toda vez que executar sudo, você pode usar a opção NOPASSWD para pular a solicitação de senha.
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
Com esta configuração, o usuário “alice” poderá reiniciar o nginx sem senha.
Entretanto, isso aumenta os riscos de segurança, portanto é importante usá‑lo apenas para um número limitado de comandos.
Em particular, combinar com ALL não é recomendado.
4. Uso Avançado do sudo
Executando Comandos como um Usuário Específico
Normalmente, sudo executa comandos com privilégios de root, mas ao usar opções, você também pode executar comandos como qualquer usuário.
Por exemplo, se quiser executar um comando como o usuário “www-data” usado pelo servidor web, use o seguinte:
sudo -u www-data whoami
O resultado da execução será www-data, confirmando que “o comando foi executado como www-data, não como eu mesmo.”
Este uso é útil quando você quer verificar ambientes ou privilégios diferentes para cada usuário.
Combinação com Redirecionamentos e Pipes
Um ponto comum de confusão para iniciantes é a combinação de sudo com redirecionamentos (>) e pipes (|).
Por exemplo, o comando a seguir pode parecer correto à primeira vista, mas não funcionará como esperado:sudo echo "test" > /etc/test.conf
Nesse caso, o echo em si é executado com sudo, mas o redirecionamento com > é executado com privilégios de usuário regular. Portanto, a escrita falhará.
A forma correta é usar o comando tee:
echo "test" | sudo tee /etc/test.conf
Ao fazer isso, a parte do redirecionamento também é executada com privilégios de sudo, e você pode evitar o erro.
Utilizando sudo em Scripts
Ao incluir comandos que exigem privilégios de administrador em um script de shell, adicione explicitamente sudo antes do comando.
No entanto, se você estiver criando um script com a suposição de que ele será executado por um usuário regular, é mais seguro adicionar sudo apenas às partes necessárias e evitar executar todo o script com sudo.
Exemplo (install.sh):
#!/bin/bash
echo "Installing package..."
sudo apt install -y nginx
Há também um padrão para verificar se é root no início do script:
if [ "$EUID" -ne 0 ]; then
echo "This script must be run as root"
exit 1
fi
Ao incluir esses controles, a operação segura do script se torna possível.
Comandos Convenientes Frequentemente Usados
sudo !!→ Reexecuta o comando anterior com sudo. Por exemplo:apt update sudo !!
Isso tem o mesmo efeito que sudo apt update.
sudo -k→ Limpa manualmente o cache de senha do sudo. Isso é útil por razões de segurança, como antes de deixar temporariamente seu terminal.sudo -v→ Estende os privilégios de sudo para a sessão atual. Isso é conveniente para tarefas longas.
5. Segurança e Melhores Práticas
Adira ao Princípio do Menor Privilégio
O principal propósito de usar sudo é habilitar operações do sistema com os privilégios mínimos necessários.
Em outras palavras, o uso ideal não é “sempre ser o usuário root todo-poderoso”, mas “emprestar o poder do root apenas quando necessário e no escopo necessário.”
Seguindo esse princípio, as seguintes configurações, por exemplo, são desejáveis:
- Permitir que usuários executem apenas comandos específicos com sudo (ex.:
systemctl restart nginx). - Minimizar o uso de NOPASSWD.
- Gerenciar usuários com privilégios administrativos em grupos (ex.:
sudo).
Registro e Auditoria
O sudo registra comandos executados em logs. Isso permite verificar posteriormente quem usou qual comando e quando.
Os principais destinos de log são os seguintes (podem variar dependendo da distribuição):
/var/log/auth.log(Ubuntu, baseado em Debian)journalctl(distribuições com systemd)
Por exemplo, para verificar o histórico de uso do sudo no Ubuntu:
grep 'sudo' /var/log/auth.log
Ou:
journalctl _COMM=sudo
Isso torna possível rastrear quem fez o quê mesmo em caso de operações não autorizadas ou acidentais. Essa é uma perspectiva essencial na gerenciamento de servidores.

Vulnerabilidade Real do sudo (CVE-2021-3156)
Embora o sudo seja uma ferramenta muito confiável, vulnerabilidades significativas foram relatadas no passado.
Um exemplo particularmente famoso é a CVE-2021-3156 (comumente conhecida como Baron Samedit), lançada em 2021.
Essa foi uma vulnerabilidade grave em que, sob certas condições, uma entrada maliciosa poderia permitir que um usuário regular obtivesse privilégios de root.
Esse problema já foi corrigido, mas, como este caso mostra:
- Mantenha pacotes importantes, incluindo sudo, na versão mais recente .
- Verifique regularmente sites oficiais e bancos de dados de vulnerabilidades.
Essas medidas são necessárias.
Introdução à Alternativa do sudo: doas
Entre alguns ambientes Linux minimalistas e usuários preocupados com segurança, um comando chamado doas também é usado como alternativa ao sudo.
doas é uma ferramenta concisa de elevação de privilégios originária do OpenBSD, caracterizada por sua configuração mais simples e maior segurança em comparação ao sudo.
Exemplo:
doas apt update
O arquivo de configuração fica em /etc/doas.conf. A sintaxe também é simples:
permit nopass :wheel
Como mostrado, você pode escrever facilmente configurações como permitir que usuários do grupo wheel usem doas sem senha.
No entanto, como o doas não é fornecido por padrão em alguns ambientes Linux, é necessário algum esforço para instalá‑lo e configurá‑lo.
Dependendo do propósito e objetivo, é bom escolher se sudo ou doas é mais adequado.
6. Erros Comuns e Solução de Problemas
Erro “User is not in the sudoers file”
username is not in the sudoers file. This incident will be reported.
Esse erro é exibido quando o usuário atual não tem permissão para usar sudo. Normalmente ocorre quando um novo usuário que ainda não foi adicionado ao grupo sudo executa um comando.
Solução:
- Faça login com outro usuário que possua privilégios de root.
- Adicione o usuário alvo ao grupo
sudo.sudo usermod -aG sudo username
Depois disso, saia da sessão e faça login novamente; o sudo estará disponível.
Erro “Permission denied” ao Usar Redirecionamentos ou Pipes
Permission denied
Esse erro ocorre porque, mesmo que você pretenda executar um comando com sudo, o destino do redirecionamento ou o processamento do pipe está sendo feito fora do sudo.
Exemplo Incorreto:
sudo echo "test" > /etc/test.conf
Nesse caso, o echo é executado com sudo, mas a escrita no arquivo é feita com os privilégios do usuário comum, resultando em erro.
Uso Correto:
echo "test" | sudo tee /etc/test.conf
Ou, para escrever várias linhas de uma vez, é melhor usar sudo tee ou sudo bash -c.
sudo bash -c 'echo "line1" > /etc/test.conf'
Inoperabilidade Devido a Erros na Edição do Arquivo sudoers
Se você editar diretamente o arquivo sudoers e cometer um erro de sintaxe, o próprio sudo pode ficar inutilizável. Essa é uma situação muito perigosa.
Solução:
- Faça login com a conta root (observe que ela está desativada por padrão no Ubuntu).
- Repare com o seguinte comando:
pkexec visudo
Se o pkexec não puder ser usado, será necessário iniciar em modo de recuperação ou similar para modificar o arquivo /etc/sudoers.
Além disso, para evitar erros de sintaxe, sempre use o seguinte ao editar:
sudo visudo
“sudo: command not found”
sudo: command not found
Esse erro ocorre quando o sudo não está instalado no sistema ou não pode ser encontrado devido a um problema na variável de ambiente PATH.
Solução:
- Faça login com privilégios de root e reinstale o sudo da seguinte forma:
apt update apt install sudo
- Ou execute especificando diretamente o caminho para
/usr/bin/sudo:/usr/bin/sudo ls
7. FAQ: Perguntas Frequentes Sobre o sudo
Q1. Qual a diferença entre sudo e su?
R:
sudo é um comando para “executar temporariamente apenas comandos específicos com privilégios de administrador”, enquanto su é um comando para “trocar para outro usuário (principalmente root)”.
sudo: Eleva privilégios apenas para algumas operações, permanecendo como o usuário atual.su: Troca completamente para outro usuário.
Do ponto de vista de segurança e histórico de operações, o uso do sudo tem sido recomendado nos últimos anos.
Q2. Preciso da senha root ao usar sudo?
R:
Não, normalmente você digita sua própria senha de login, não a senha root.
Isso reduz o risco de vazamento da senha root e facilita o rastreamento do histórico de operações do usuário.
Q3. Onde são registrados os logs do sudo?
R:
Em muitas distribuições Linux, os logs de operação do sudo são gravados em um dos seguintes locais:
- Baseado em Ubuntu/Debian:
/var/log/auth.log - Baseado em RHEL/CentOS:
/var/log/secure - Todos os ambientes systemd:
journalctl _COMM=sudo
Isso torna possível rastrear quem fez o quê mesmo em caso de operações não autorizadas ou acidentais.
Q4. Eu editei acidentalmente o arquivo sudoers. O que devo fazer?
A:
Primeiro, sempre certifique-se de usar sudo visudo antes de editar.
Se você não puder mais usar sudo devido a um erro de sintaxe, tente repará-lo usando um dos seguintes métodos:
- Faça login com a conta root e corrija com
visudo. - Se for Ubuntu, inicialize como root do “Modo de Recuperação” e repare-o.
pkexec visudo(em ambientes ondepolkitestá habilitado).
Como erros de sintaxe afetam o funcionamento de todo o sistema, por favor, teste novamente após corrigir.
Q5. Há uma maneira de obter privilégios de root sem usar sudo?
A:
Sim, mas não é recomendado devido ao aumento dos riscos de segurança.
Por exemplo:
- Mude para root com o comando
su(requer a senha de root). - Faça login diretamente com a conta root (desabilitada por padrão no Ubuntu).
Muitas distribuições Linux têm uma política de evitar o uso direto da conta root, e usar sudo é mais seguro.
Q6. É seguro lançar aplicativos GUI usando sudo?
A:
Basicamente, é melhor evitar. Por exemplo, executar algo como sudo gedit pode sobrescrever arquivos de configuração GUI com privilégios de root, o que pode causar inconsistências de permissões ou corrupção de configuração.
Ao usar aplicativos GUI, é recomendado usar gksudo ou pkexec da seguinte forma (no entanto, essas ferramentas podem estar depreciadas ou não instaladas dependendo do ambiente):
pkexec gedit
8. Conclusão
Entenda o Papel do sudo Corretamente
Neste artigo, explicamos amplamente o “sudo,” um comando muito importante em sistemas Linux e semelhantes ao Unix, cobrindo seu papel básico, uso, métodos de configuração, aplicações, medidas de segurança, erros comuns e FAQs.
sudo não é apenas algo para “colocar antes de um comando,” mas um mecanismo importante de controle de acesso que permite o trabalho necessário enquanto mantém a segurança do sistema.
Uso Adequado Previne Problemas
Prestar atenção particular aos seguintes pontos é a chave para usar sudo com segurança:
- Operar com os privilégios mínimos necessários (princípio do menor privilégio).
- Gerenciar configurações com segurança usando
visudo. - Utilizar logs para verificar e gerenciar o histórico de operações.
- Ter cuidado com o comportamento ao combinar com pipes e redirecionamentos.
- Basicamente evitar usá-lo para aplicativos GUI.
Falhar em entender esses pontos pode levar a problemas como “arquivos estão corrompidos,” “configurações não podem ser restauradas,” ou “sudo se tornou inutilizável.”
Escolha um Estilo que Se Adapte à Sua Operação do Sistema
Linux é um sistema muito flexível. Além de usar sudo, você também pode usar ferramentas alternativas como doas conforme necessário.
Dependendo da sua política operacional e política de segurança, escolha um estilo que se adapte a você e configure e opere adequadamente, o que levará a um melhor gerenciamento do sistema.
Finalmente
Entender sudo é o primeiro passo para entender o Linux.
Por favor, adquira o conhecimento e uso corretos não apenas como um comando conveniente, mas como uma “chave” para proteger todo o sistema.
Esperamos que da próxima vez que você usar Linux, cada um de seus comandos seja executado com mais confiança.


