Como Corrigir o Erro 'Usuário Não Está no Arquivo Sudoers' no Linux

Publicado 27 de agosto de 2024

Você se depara com o erro "usuário não está no arquivo sudoers" ao tentar executar um comando com privilégios sudo? Neste artigo, veremos duas formas de corrigir esse problema e conceder acesso sudo ao usuário.

Solução Rápida: Adicionar Usuário ao Arquivo Sudoers

Para corrigir o erro "usuário não está no arquivo sudoers" e conceder privilégios sudo ao usuário, você pode adicionar o nome de usuário ao arquivo sudoers. Veja como:

  1. Abra um terminal e faça login como um usuário com privilégios sudo ou como root.

  2. Execute este comando para editar o arquivo sudoers:

    sudo visudo

    Este comando abre o arquivo sudoers em um editor de texto e bloqueia o arquivo, impedindo edições simultâneas.

  3. Vá até o final do arquivo e adicione esta linha:

    nomedousuario ALL=(ALL) ALL

    Substitua "nomedousuario" pelo nome do usuário a quem você quer conceder privilégios sudo.

  4. Salve as alterações e saia do editor de texto. No editor padrão (nano), pressione Ctrl+X, depois Y e Enter para salvar e sair.

Método Alternativo: Adicionando Usuário ao Grupo Sudo

Em vez de modificar diretamente o arquivo sudoers, você pode adicionar o usuário ao grupo sudo. Este método é mais simples e tem menos risco de erros de sintaxe. Para adicionar o usuário ao grupo sudo, use este comando:

sudo usermod -aG sudo nomedousuario

Substitua "nomedousuario" pelo nome do usuário que você quer adicionar ao grupo sudo.

---example Para adicionar a usuária "maria" ao grupo sudo, execute:

sudo usermod -aG sudo maria

Após executar este comando, "maria" estará no grupo sudo e poderá usar sudo para executar comandos com permissões de superusuário.

Verificando o Acesso Sudo do Usuário

Para verificar se um usuário tem acesso sudo, você pode usar o comando id para ver suas associações de grupo:

id nomedousuario 

Se o usuário estiver no grupo sudo ou tiver sido adicionado ao arquivo sudoers, você verá "sudo" listado em seus grupos.

Considerações Importantes

  • Tenha cuidado ao conceder acesso sudo aos usuários, pois isso permite que eles realizem tarefas que podem modificar arquivos e configurações do sistema.
  • Conceda acesso sudo apenas a usuários que precisam dele para suas tarefas e são confiáveis.
  • Verifique e atualize regularmente a lista de usuários com acesso sudo para manter seu sistema seguro.

Entendendo o Motivo do Erro

O arquivo sudoers é um arquivo de configuração em sistemas Linux que controla as permissões dos usuários para executar comandos com sudo (superuser do). Este arquivo especifica quais usuários ou grupos têm permissão para usar sudo e obter privilégios de root.

Quando um usuário tenta executar um comando com sudo, o sistema verifica o arquivo sudoers para confirmar se o usuário tem as permissões necessárias. Se o usuário não estiver listado no arquivo ou não tiver as permissões adequadas, a mensagem de erro "usuário não está no arquivo sudoers" aparece.

O arquivo sudoers geralmente está localizado em /etc/sudoers e deve ser modificado apenas usando o comando visudo, que verifica erros de sintaxe e evita corrupção do arquivo.

Motivos Comuns para o Erro

  1. Usuário não adicionado ao arquivo sudoers: Se o usuário foi criado recentemente ou as permissões sudo não foram concedidas durante a configuração do usuário, seu nome não estará no arquivo sudoers.

  2. Usuário removido do arquivo sudoers: Se as permissões sudo do usuário foram revogadas ou sua entrada foi acidentalmente excluída do arquivo sudoers, ele não terá mais acesso sudo.

  3. Usuário não está no grupo sudo: Algumas distribuições Linux, como o Ubuntu, usam um grupo sudo em vez de adicionar usuários diretamente ao arquivo sudoers. Se o usuário não for membro do grupo sudo, ele não poderá usar sudo.

  4. Erros de sintaxe no arquivo sudoers: Se houver erros de sintaxe ou equívocos no arquivo sudoers, isso pode impedir que o sudo funcione corretamente para todos os usuários.

graph TD A[Usuário tenta executar comando sudo] --> B{Usuário está no arquivo sudoers?} B -->|Sim| C[Comando executado com permissões sudo] B -->|Não| D{Usuário está no grupo sudo?} D -->|Sim| C[Comando executado com permissões sudo] D -->|Não| E[Erro: usuário não está no arquivo sudoers]

---example:"Adicionando um Usuário ao Arquivo Sudoers"

Para adicionar um usuário chamado "joão" ao arquivo sudoers, siga estes passos:

  1. Abra um terminal e execute sudo visudo.
  2. Adicione a seguinte linha ao arquivo: joão ALL=(ALL) ALL.
  3. Salve o arquivo e saia.

Agora, o usuário "joão" terá privilégios sudo.

Corrigindo o Erro

Para resolver o erro "usuário não está no arquivo sudoers", você precisa adicionar o usuário diretamente ao arquivo sudoers ou adicioná-lo ao grupo sudo, dependendo da configuração do seu sistema.

Método Comando
Adicionar usuário ao arquivo sudoers sudo visudo, depois adicione nomedousuario ALL=(ALL) ALL
Adicionar usuário ao grupo sudo sudo usermod -aG sudo nomedousuario

Sempre use o comando visudo para editar o arquivo sudoers para minimizar o risco de erros de sintaxe e garantir que as permissões sudo sejam concedidas corretamente.

Quando você encontra a mensagem de erro "usuário não está no arquivo sudoers. Este incidente será relatado", geralmente significa que o usuário com o qual você está tentando executar comandos não tem os privilégios sudo necessários. Este erro ocorre quando um usuário do sistema tenta executar um comando usando o comando sudo sem estar listado no arquivo sudoers ou ser membro do grupo sudo.

Adicionar Usuário ao Grupo sudo

Outra maneira de dar privilégios sudo a um usuário é adicioná-lo ao grupo sudo. O grupo sudo é um grupo especial que permite que seus membros usem o comando sudo e executem comandos com permissões de superusuário.

Para adicionar um usuário ao grupo sudo, use o comando usermod com as opções -aG seguidas pelo nome do grupo e nome do usuário:

sudo usermod -aG sudo nomedousuario

Substitua nomedousuario pelo nome real do usuário que você deseja adicionar ao grupo sudo.

Por exemplo, para adicionar a usuária "ana" ao grupo sudo, execute:

sudo usermod -aG sudo ana

Após executar este comando, a usuária "ana" será membro do grupo sudo e poderá usar o comando sudo para executar comandos com privilégios de superusuário.

Usar o grupo sudo para gerenciar permissões de usuários tem várias vantagens:

Gerenciamento simplificado

Em vez de editar o arquivo sudoers para cada usuário, você pode adicionar ou remover usuários do grupo sudo para dar ou retirar acesso sudo.

Consistência

Ao usar o grupo sudo, você mantém um método consistente para dar privilégios sudo a vários usuários.

Risco reduzido de erros de sintaxe

Adicionar usuários ao grupo sudo elimina a necessidade de alterar o arquivo sudoers diretamente, reduzindo o risco de erros de sintaxe que poderiam impedir o sudo de funcionar corretamente.

Auditoria mais fácil

Você pode verificar rapidamente quais usuários têm privilégios sudo listando os membros do grupo sudo usando o comando:

grep sudo /etc/group

Este comando mostrará uma linha como:

sudo:x:27:ana,carlos,beatriz

No exemplo acima, os usuários "ana", "carlos" e "beatriz" são membros do grupo sudo e têm privilégios sudo.

É importante notar que o grupo sudo pode não estar disponível em todas as distribuições Linux. Alguns sistemas, como o CentOS, usam um grupo wheel em vez disso. Sempre verifique a documentação da sua distribuição para encontrar o grupo correto para dar privilégios sudo.

Por exemplo, no CentOS, você pode adicionar um usuário ao grupo wheel para dar privilégios sudo:

sudo usermod -aG wheel nomedousuario

Modificando o Arquivo Sudoers

Embora adicionar um usuário ao grupo sudo seja uma maneira simples de conceder privilégios sudo, pode haver situações em que você precise modificar o arquivo sudoers. A edição do arquivo sudoers deve ser feita com cuidado, pois erros de sintaxe podem fazer o sudo parar de funcionar.

Para editar o arquivo sudoers, você deve usar um editor de texto com privilégios de root. O método recomendado é usar o comando visudo, que abre o arquivo sudoers no editor de texto padrão e verifica erros de sintaxe ao salvar as alterações. Para abrir o arquivo sudoers com visudo, execute:

sudo visudo

Uma vez que o arquivo estiver aberto, você pode adicionar um usuário ou grupo ao arquivo sudoers usando a seguinte sintaxe:

nomedousuario ALL=(ALL) ALL
%nomegrupo ALL=(ALL) ALL

Substitua nomedousuario pelo nome real do usuário e nomegrupo pelo nome real do grupo ao qual você quer conceder privilégios sudo.

---example:"Concedendo acesso sudo a um usuário"

Para dar acesso sudo ao usuário "pedro", adicione esta linha ao arquivo sudoers:

pedro ALL=(ALL) ALL

Isso permite que o usuário "pedro" execute qualquer comando com privilégios sudo de qualquer host.

Melhores práticas ao modificar o arquivo sudoers

  • Sempre use visudo para editar o arquivo sudoers
  • Verifique duas vezes a sintaxe de suas alterações
  • Limite o acesso sudo apenas aos comandos e usuários necessários
  • Use grupos para gerenciar o acesso sudo para vários usuários
  • Mantenha um backup do seu arquivo sudoers antes de fazer alterações

Verificando a Correção

Após adicionar o usuário ao arquivo sudoers ou ao grupo sudo, você deve verificar se as alterações entraram em vigor e se o usuário agora pode executar comandos com privilégios sudo.

Testando o acesso sudo

Para verificar se o usuário pode executar comandos sudo, mude para a conta dele ou faça login como o usuário, e então tente executar um comando com sudo, como:

sudo ls

Este comando tentará listar o conteúdo do diretório atual com privilégios de superusuário. Se o usuário tiver acesso sudo, o comando será executado com sucesso após o usuário inserir sua senha. Se o usuário não tiver privilégios sudo, uma mensagem de erro aparecerá, indicando que o usuário não está no arquivo sudoers.

Aqui está um exemplo de teste de acesso sudo para o usuário "pedro":

su pedro
sudo ls

Se "pedro" tiver privilégios sudo, o comando ls será executado e mostrará o conteúdo do diretório. Se não, uma mensagem de erro como esta aparecerá:

pedro não está no arquivo sudoers. Este incidente será relatado.

Verificando associações de grupo

Outra maneira de verificar o acesso sudo é verificando as associações de grupo do usuário com o comando groups:

groups pedro

Se o usuário tiver sido adicionado ao grupo sudo, você deverá ver "sudo" na saída:

pedro : pedro sudo

Esta saída confirma que o usuário "pedro" está no grupo sudo e tem privilégios sudo.

Resolvendo problemas de acesso sudo

Se o usuário ainda não puder usar sudo após ser adicionado ao arquivo sudoers ou ao grupo sudo, verifique o seguinte:

  • A sintaxe do arquivo sudoers está correta e não há erros na entrada do usuário
  • O usuário foi adicionado ao grupo correto (sudo ou wheel, dependendo da distribuição)
  • O usuário fez logout e login novamente, ou o sistema foi reiniciado para que as alterações de grupo entrem em vigor

Mensagens de erro comuns do sudo e soluções

Mensagem de Erro Solução
nomedousuario não está no arquivo sudoers. Este incidente será relatado. Adicione o usuário ao arquivo sudoers ou ao grupo sudo.
[sudo] senha para nomedousuario:
nomedousuario não está no arquivo sudoers. Este incidente será relatado.
O usuário não está no arquivo sudoers ou no grupo sudo. Adicione o usuário ao grupo ou arquivo correto.
Desculpe, o usuário nomedousuario não tem permissão para executar '/caminho/para/comando' como root em nomedohost. O usuário está no arquivo sudoers, mas sua entrada não permite que ele execute o comando. Modifique a entrada do usuário no arquivo sudoers para conceder as permissões necessárias.

---example Para adicionar a usuária "julia" ao grupo sudo em um sistema Ubuntu, use este comando:

usermod -aG sudo julia

Após executar este comando, faça logout e login novamente como "julia", e teste o acesso sudo:

sudo ls

Se o comando for executado com sucesso, "julia" agora tem privilégios sudo.