Como usar o sudo no Linux e gerenciá-lo com segurança

Última atualização: 22/03/2026
autor: Isaac
  • O comando sudo permite executar ações administrativas específicas sem fazer login como root, reduzindo os riscos.
  • A configuração de permissões e usuários autorizados é gerenciada por meio do arquivo sudoers e do diretório /etc/sudoers.d/.
  • Opções como -u, -so e -i permitem executar comandos ou abrir shells como outros usuários, mantendo a rastreabilidade.
  • Usar o sudo com cuidado e limitar o acesso direto ao usuário root é fundamental para manter a estabilidade e a segurança do sistema Linux.

Usando o comando sudo no Linux

Se você usa Linux diariamente, mais cedo ou mais tarde se deparará com o comando `sudo` , aquele pequeno comando que aparece em quase todos os tutoriais quando você precisa trabalhar com algo sensível no sistema. Adicionar um usuário, instalar um pacote, editar um arquivo de configuração ou reiniciar um serviço... assim que algo começa a parecer "administração", o `sudo` entra em ação para lhe dar permissões especiais sem que você precise fazer login como root permanentemente.

Entender como usar o `sudo` no Linux é fundamental para trabalhar com segurança no sistema . Não se trata apenas de digitar `sudo` antes de um comando e inserir uma senha: existe todo um sistema de permissões, grupos, tempos de expiração e um arquivo de configuração (`sudoers`) que define quem pode fazer o quê. Vamos analisar isso com calma, em linguagem simples, mas sem omitir nenhum detalhe importante.

O que exatamente é o sudo no Linux e para que serve?

O comando `sudo` no Linux permite executar programas com os privilégios de outro usuário , geralmente o superusuário root . Seu nome é frequentemente explicado como "superusuário faz" ou "substituir usuário e fazer", e seu propósito é simples: permitir que você execute tarefas administrativas sem precisar fazer login como root.

Na maioria das distribuições modernas (Ubuntu, Debian, openSUSE, etc.), o sudo vem pré-instalado e configurado para uso por um grupo de usuários. Isso permite que um usuário comum mantenha permissões limitadas para tarefas cotidianas, mas possa "tomar emprestado" privilégios de root quando necessário.

Essa abordagem é muito mais segura do que trabalhar sempre como root . Se você navegar na internet, executar aplicativos gráficos ou abrir anexos com uma conta normal, qualquer ataque potencial é significativamente limitado. Somente quando você realmente precisar modificar o sistema é que deverá adicionar `sudo` ao comando e autenticar.

Importante: o comando `sudo` não concede privilégios de root permanentes . Dependendo da sua configuração, ele concede privilégios elevados apenas para o comando executado ou por um período específico dentro daquela sessão do terminal. Após esse período, você será solicitado a inserir sua senha novamente.

Em resumo, o sudo é a ponte controlada entre um usuário comum e as tarefas administrativas : ele permite instalar softwares, alterar permissões críticas ou gerenciar serviços, mas sempre sob a supervisão de uma política definida no sistema.

Como o sudo funciona internamente e qual é a sua sintaxe básica?

O comando sudo é executado em um terminal Linux.

O uso básico do sudo é muito simples: basta colocá-lo antes do comando que você deseja executar com privilégios elevados . O formato geral é:

sudo comando argumentos

Ao pressionar Enter, o sistema primeiro verifica se o seu usuário está autorizado a usar o sudo.Essa autorização está definida no arquivo /etc/sudoers e nos arquivos do diretório /etc/sudoers.dSe você tiver permissão, o sistema solicitará uma senha.

A senha inserida com `sudo` geralmente é a sua senha de usuário comum, não a senha de root , exceto em configurações específicas ou em certas distribuições corporativas. Ao digitá-la no terminal, você não verá nenhum asterisco ou caractere especial; ela é inserida "às cegas", embora esse comportamento possa ser alterado, como veremos mais adiante.

Após a autenticação bem-sucedida, o comando `sudo` é executado como se você fosse o usuário de destino (geralmente root). Além disso, um registro é normalmente deixado nos logs do sistema para que o administrador possa auditar o que foi feito com o `sudo`.

Por padrão, a autenticação com sudo tem um limite de tempo (geralmente em torno de 15 minutos). Enquanto você não fechar o terminal e esse tempo não tiver expirado, os comandos sudo subsequentes não solicitarão sua senha novamente. Você pode forçar uma atualização ou redefinir esse limite de tempo usando determinadas opções.

Opções e parâmetros comuns do comando sudo

Além de servir como um prefixo simples, o sudo possui diversas opções muito úteis que permitem visualizar informações, renovar credenciais ou executar comandos como outros usuários. Algumas das mais importantes são:

  • -hExibe uma breve mensagem de ajuda com a sintaxe e todas as opções disponíveis para o comando sudo.
  • -VExibe a versão instalada do programa sudo e detalhes da compilação.
  • -v: Renova o "período de tolerância" da autenticação sem executar nenhum comando. É utilizado para atualizar o período de validade da senha. e impedir que ele expire enquanto você continua trabalhando.
  • -k: invalida imediatamente as credenciais armazenadas em cache. Após usar a opção -k, o próximo comando sudo solicitará sua senha novamente.embora não tenham se passado 15 minutos.
  • -l: mostra a lista de privilégios que seu usuário possui com o sudo. É muito útil para saber quais comandos você tem permissão para executar. de acordo com a configuração dos suéteres.
  • -sAbre um shell usando sudo, herdando o ambiente do seu usuário atual.
  • -i: abre um shell de login "limpo" para o usuário alvo, semelhante a fazer login diretamente como esse usuário.
  • -u USUÁRIO: indica que você deseja executar o comando como um usuário diferente de root, por exemplo sudo -u pedro whoami.

Combinando essas opções, você pode adaptar o comportamento do sudo às suas necessidades em determinado momento , desde visualizar sua lista de permissões até obter um shell com o ambiente de outro usuário.

  AccessEnum em detalhes: guia prático, truques e principais usos

Diferenças entre sudo e su: duas maneiras de obter permissões

No Linux, existem duas maneiras clássicas de obter privilégios administrativos: `sudo` e `su` . Elas são frequentemente confundidas, mas na verdade servem a necessidades diferentes, e é importante entender a diferença entre elas.

O comando `su` (substituir usuário) permite que você troque de usuário no mesmo terminal . Se você não especificar para qual usuário deseja alternar, o comando assume que você quer fazer login como root. Em seguida, ele solicitará a senha do usuário para o qual você deseja alternar.

su pedro
Contraseña: **

Ao usar o comando `su`, a sessão do usuário original não é encerrada.Você simplesmente inicia uma nova sessão "aninhada" dentro da anterior. Se você encadear vários comandos `su`, poderá acabar com uma pilha curiosa de sessões aninhadas umas dentro das outras. Para voltar, você digita exit quantas vezes forem necessárias.

O problema prático de usar `su` para tudo é que as pessoas acabam trabalhando como root por longos períodos, com todos os riscos que isso acarreta: qualquer comando mal escrito pode danificar metade do sistema.

O sudo foi criado precisamente para resolver esse problema . Em vez de trocar completamente de usuário, você mantém sua sessão normal e eleva os privilégios apenas para os comandos específicos que exigem isso. Muitas distribuições nem sequer recomendam fazer login como root pela interface gráfica.

Resumindo a ideia principal: `su` troca de usuário (geralmente para root) mantendo essa identidade até que você saia do sistema , enquanto `sudo` executa um comando específico (ou uma série limitada de comandos) com privilégios elevados e, em seguida, você retorna automaticamente ao seu status de usuário normal.

Exemplos práticos: usando sudo com comandos administrativos comuns

A melhor maneira de perceber o poder do sudo é através de exemplos cotidianos de administração de sistemas , onde um usuário comum se depararia com o clássico "Permissão negada".

Instalando ou atualizando pacotes : Se você tentar usar o gerenciador de pacotes sem privilégios de administrador, geralmente ocorrerá uma falha ao tentar gravar em diretórios do sistema. Por exemplo, no Debian ou Ubuntu:

apt-get update

Sem o sudo, o sistema não conseguirá abrir os arquivos bloqueados em /var/lib/apt/ Você verá erros de permissão. Se repetir o comando com `sudo`, será solicitada a sua senha de usuário (se você estiver autorizado) e o processo funcionará.

sudo apt-get update

Gerenciamento de usuários : Criar um novo usuário, alterar sua senha ou modificar seus grupos requer privilégios. Um exemplo típico seria:

sudo useradd edward

Sem o prefixo sudo, um usuário comum não consegue acessar o sistema de contas. e o comando falharia. O mesmo se aplica a utilitários como usermod o deluser.

Editar arquivos de configuração do sistemaMuitas configurações são armazenadas em arquivos de texto em /etcPara abrir um desses arquivos com um editor, você precisa do comando sudo. Por exemplo, para editar /etc/hosts:

sudo nano /etc/hosts

Em sistemas que utilizam systemd, você também precisará do sudo para gerenciar serviços . Por exemplo, para reiniciar o Apache:

sudo systemctl restart apache2

Note que, para ações que apenas leem informações e não modificam o sistema (como verificar o status de um serviço), o uso de sudo geralmente não é necessário, por exemplo:

systemctl status NetworkManager

Execute comandos como outro usuário com sudo (-u, -s, -i)

Além de executar como root, o sudo também permite que você aja como outros usuários do sistema , o que é muito útil quando você deseja testar permissões, revisar arquivos pertencentes a outra conta ou executar processos com outra identidade.

A maneira mais direta é usar -u seguido do nome de usuário e, em seguida, o comando que você deseja executar:

whoami
sudo -u pedro whoami

Na primeira linha, `whoami` retorna seu nome de usuário real.; no segundo, graças a sudo -u pedroO comando é executado com a identidade de “pedro”. Obviamente, para isso você também precisa de permissão na configuração do sudoers.

Se o que você deseja é um acesso completo como o de outro usuário, você tem duas opções muito importantes:

  • Sudo -sAbre um shell privilegiado, herdando seu ambiente atual. O usuário de destino (root por padrão) inicia no mesmo diretório e com suas variáveis ​​de ambiente.
  • sudo -i: abre um shell de login para o usuário alvo. Nesse caso, seu ambiente "limpo" é carregado., seus scripts de inicialização são executados (como .profile o .bash_profile) e começa em seu $HOME.

Ambos os métodos deixam um rastro no histórico de comandos , o que é interessante para fins de auditoria e para lembrar o que foi feito em sessões anteriores.

  Como evitar que o Outlook baixe automaticamente imagens externas

O arquivo sudoers: o coração da configuração do sudo

Todo o comportamento do sudo (quem pode usá-lo, com quais comandos e sob quais condições) é controlado pelo arquivo sudoers., localizado na /etc/sudoers e complementado pelos arquivos no diretório /etc/sudoers.d/.

Este arquivo não deve ser editado com um editor padrão.Porque um erro de sintaxe pode tornar o sudo inutilizável e complicar seriamente as coisas. A maneira correta é usar o comando. visudo, que abre o arquivo com o editor configurado e valida seu conteúdo antes de salvá-lo.

Para editar o arquivo principal do sudoers, geralmente você usa:

sudo visudo -f /etc/sudoers

Dentro do arquivo, você verá várias linhas importantes , por exemplo:

  • raiz TODOS=(TODOS:TODOS) TODOS: indica que o usuário root pode executar qualquer comando em qualquer host, assim como qualquer outro usuário e grupo.
  • % admin ALL = (ALL) ALLO símbolo % antes de um nome refere-se a um grupo. Os usuários do grupo de administradores têm privilégios equivalentes aos do usuário root..
  • % sudo TODOS = (TODOS: TODOS) TODOSO mesmo se aplica ao grupo sudo, amplamente utilizado no Debian e no Ubuntu.
  • #includedir /etc/sudoers.dEsta diretiva inclui automaticamente todos os arquivos de configuração nesse diretório.

A prática recomendada é evitar mexer muito na linha raiz principal. e, em vez disso, crie arquivos específicos em /etc/sudoers.d/ para grupos ou usuários específicos. Isso facilita a organização da configuração e reduz os riscos.

Conceder permissões de sudo a um usuário: grupos e entradas personalizadas

Em muitas distribuições, o primeiro usuário criado durante a instalação já pertence ao grupo sudo (ou admin) e, portanto, pode usar o sudo desde o início. Se você quiser conceder permissões a mais usuários, a maneira mais fácil geralmente é adicioná-los a esse grupo.

Para ver quais usuários pertencem ao grupo sudo, você pode usar:

grep 'sudo' /etc/group

Se você deseja que um usuário chamado "bill" tenha privilégios sudo completos , basta adicioná-lo ao grupo correspondente:

sudo adduser bill sudo

Depois disso, Bill poderá executar qualquer comando com sudo (exceto por restrições específicas adicionadas no sudoers). Se você quiser remover esses privilégios posteriormente, remova-o do grupo.

sudo deluser bill sudo

Quando você precisa de um controle mais preciso, o sudoers permite definir regras muito detalhadas . Por exemplo, você pode criar um grupo especial (netadmin) e restringi-lo a comandos de rede específicos usando aliases de comando:

Cmnd_Alias CAPTURE = /usr/sbin/tcpdump
Cmnd_Alias SERVERS = /usr/sbin/apache2ctl, /usr/bin/htpasswd
Cmnd_Alias NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL

Com essa configuração, qualquer pessoa pertencente ao grupo netadmin poderá usar o tcpdump e alguns comandos do Apache com sudo, mas não terá controle total sobre todo o sistema. Para concluir a configuração, você deve adicionar bill ao grupo netadmin:

sudo adduser bill netadmin

Configure o sudo de forma "segura" e "confortável" (com ou sem senha).

Uma das decisões práticas mais frequentes é se o sudo deve sempre solicitar uma senha ou não.Ambos os métodos são possíveis e podem ser configurados no sudoers ou em arquivos. /etc/sudoers.d/.

Modo "seguro": sempre requer uma senha . Esta é a opção mais prudente: o usuário pode executar qualquer comando como root com `sudo`, mas deve inserir sua senha a cada vez. Um exemplo típico de entrada para este modo seria:

usuario ALL=(ALL:ALL) ALL

Modo "conveniente": sem senha (NOPASSWD) . Em ambientes de desktop ou máquinas de teste, alguns usuários preferem que o sudo não solicite a senha a cada execução. Para isso, você pode usar algo como:

usuario ALL=(ALL) NOPASSWD: ALL

Em ambos os casos, a ideia é a mesma: um arquivo de autorização é criado em /etc/sudoers.d Para o usuário em questão, isso pode ser feito manualmente com o Visudo ou por meio de um script. Algumas pessoas automatizam isso com pequenos scripts bash que copiam a linha apropriada para o diretório usando su -c Para escrever como root.

Lembre-se de que desativar a solicitação de senha reduz a segurança . Um comando executado sem que você perceba (ou um script malicioso) poderá usar o sudo sem barreiras adicionais.

Personalizar a entrada de senha: Exibir asteriscos com pwfeedback

Por definição, as senhas digitadas com `sudo` não são exibidas na tela — nem letras, nem asteriscos. Isso foi implementado como uma medida de segurança para evitar a revelação do comprimento da senha, mas muitos usuários consideram essa prática pouco amigável.

Durante anos, o sudo permitiu que você alterasse esse comportamento com a opção `pwfeedback` . Se você a ativar, verá um asterisco para cada caractere digitado ao inserir sua senha.

Para habilitá-lo, edite as configurações com o visudo:

sudo visudo

Dentro do arquivo, adicione uma linha como esta:

Defaults pwfeedback

Salve as alterações e feche o arquivo . A partir desse momento, quando você executar um comando com `sudo` e for solicitada a sua senha, você verá asteriscos aparecerem. Se preferir voltar ao comportamento silencioso, basta remover essa linha do `sudoers`.

  ESET alerta para o aumento de golpes cibernéticos

Riscos do uso descuidado de sudo e root

Trabalhar com sudo ou como root é incrivelmente poderoso, mas também pode ser desastroso se você não tiver cuidado. O Linux foi projetado para ser seguro por padrão, mas quando você eleva seus privilégios, muitas dessas proteções são removidas.

Um dos riscos mais óbvios é a exclusão de arquivos críticos do sistema.. Comandos como rm -rf / ou variações com caminhos escritos incorretamente podem tornar o sistema completamente inutilizável. Mesmo algo aparentemente inocente como rm -rf "$directorio"/* Pode ser letal se a variável estiver vazia.

Outro perigo grave é executar scripts ou arquivos binários baixados da internet com sudo sem verificá-los . Com privilégios de superusuário, eles podem instalar rootkits, backdoors e todo tipo de malware que são muito difíceis de detectar posteriormente.

Você também pode comprometer o sistema modificando as permissões de arquivos essenciais.Tocar coisas assim de um jeito maluco /etc/passwd, /boot ou o próprio GRUB com chmod o chown Isso pode até impedir que a máquina inicie, obrigando você a reinstalar o sistema ou usar ferramentas avançadas de recuperação.

A regra de ouro é clara: ao usar sudo ou como root, pense duas vezes antes de pressionar Enter . E, sempre que possível, copie comandos de fontes confiáveis, leia-os e entenda o que fazem.

Desative ou restrinja a conta root pressionando sudo.

Em muitos ambientes compartilhados, é importante limitar o uso direto da conta root . Se a senha de root for compartilhada entre muitas pessoas, qualquer uma poderá fazer alterações significativas no sistema sem deixar rastros.

Uma estratégia comum é bloquear a conta raiz. de forma que não seja possível fazer login ou usá-lo diretamente. su com ele, mas ainda permitindo que certos usuários usem o sudo. Por exemplo:

sudo passwd -l root

Este comando bloqueia a senha de root . Você não poderá fazer login como root nem usar `su` para alternar para root sem uma senha válida, mas usuários autorizados no grupo `sudo` (ou com regras em `sudoers`) ainda poderão executar comandos administrativos.

Se você quiser reativar o acesso root posteriormenteBasta atribuir uma nova senha usando passwd root a partir de um ambiente com privilégios apropriados (por exemplo, um modo de recuperação).

Comandos alternativos e ferramentas relacionadas: your e doas

Além do sudo e do su, em alguns sistemas um comando alternativo chamado doas (e run0, um substituto do sudo ) está se tornando popular , inspirado no OpenBSD e com uma filosofia mais simples e minimalista.

O Doas geralmente não é instalado por padrão.Portanto, o procedimento normal é incorporá-lo dos repositórios e, em seguida, criar seu arquivo de configuração. /etc/doas.conf. Um exemplo básico seria:

sudo apt-get install doas
sudo nano /etc/doas.conf

Nesse arquivo você pode definir regras muito simples , por exemplo:

permit nopass manz

Esta linha indica que o usuário “manz” pode usar o doas sem senha.. Você também pode usar deny para bloquear ou configurar permissões mais específicas, mas a filosofia é que a sintaxe deve ser mais direta do que a do sudoers.

Ainda assim, na maioria das distribuições Linux, o padrão de facto continua sendo o sudo , devido à sua flexibilidade, à grande quantidade de documentação disponível e à sua integração com ferramentas de auditoria.

Dominar o uso do sudo no Linux permite alternar facilmente entre tarefas normais de usuário e funções administrativas , manter o sistema mais seguro evitando sessões persistentes de root e adaptar as permissões de cada conta de acordo com suas necessidades reais. Compreender a diferença entre o sudo e o visudo, saber como manipular o sudoers com o visudo, controlar opções como pwfeedback ou NOPASSWD e estar ciente dos riscos de um comando mal executado é o que marca a linha divisória entre "apenas testar comandos" e gerenciar um sistema Linux de forma inteligente.

Crie um ambiente WSL seguro
Artigo relacionado:
Como criar um ambiente WSL 2 seguro e bem configurado