Entendendo a configuração do Sudoers

LinuxBeginner
Pratique Agora

Introdução

No Linux, o usuário root tem poder ilimitado sobre o sistema. No entanto, fazer login como root no trabalho diário é perigoso. Em vez disso, usamos o sudo, que permite que usuários comuns executem comandos específicos com privilégios elevados.

O arquivo que controla quem pode usar o sudo e o que essa pessoa pode fazer é /etc/sudoers. Esse é um dos arquivos de política mais sensíveis de um sistema Linux, pois define os poderes administrativos delegados.

Gerenciar esse arquivo exige muito cuidado. Um único erro de sintaxe pode impedir que todos, inclusive os administradores, acessem o sistema. Por esse motivo, nunca edite esse arquivo diretamente com um editor de texto comum. Em vez disso, use uma ferramenta especial chamada visudo.

Esse é um arquivo de política, não apenas uma configuração de conveniência. Ele define quem pode obter privilégios administrativos, em quais condições e para quais comandos.

Neste laboratório, você aprenderá a:

  1. Inspecionar com segurança a configuração do sudo usando visudo.
  2. Conceder privilégios administrativos a um usuário.
  3. Verificar se os privilégios estão funcionando corretamente.

Avaliar os privilégios atuais

Antes de fazer alterações, vamos verificar o estado atual. Criamos um usuário comum chamado alex para este laboratório. Por padrão, usuários novos não têm privilégios administrativos.

Inspecionar o arquivo Sudoers

Para visualizar a configuração, usamos visudo. Essa ferramenta bloqueia o arquivo e valida a sintaxe antes de salvá-lo, evitando bloqueios acidentais no sistema.

Essa etapa de validação é justamente o motivo da existência do visudo. Com editores de texto comuns, um pequeno erro de digitação pode ser descoberto somente depois que o arquivo for salvo e o acesso pelo sudo já estiver comprometido.

Visualize a configuração atual:

sudo visudo

Você verá linhas que definem quem possui privilégios. Por exemplo:

root    ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

Neste ambiente, o visudo abre o arquivo no editor nano. Pressione Ctrl+X para sair sem fazer alterações.

Verificar a falta de acesso

Agora, vamos mudar para o usuário alex e tentar executar uma tarefa administrativa.

Primeiro, mude para o usuário alex:

su - alex

Digite password quando solicitado.

Em seguida, tente listar o conteúdo do diretório restrito /root:

sudo ls /root

Digite password quando solicitado.

Observe o erro:

alex is not in the sudoers file.  This incident will be reported.

Isso confirma que alex é um usuário comum e não pode executar ações administrativas.

Esse é o padrão seguro. Na segurança do Linux, começar com menos privilégios e conceder somente o que é necessário faz parte do princípio do menor privilégio.

Por fim, volte ao seu usuário original (labex):

exit

Configurar os privilégios do usuário

Para permitir que alex execute comandos como root, precisamos adicionar uma regra ao arquivo /etc/sudoers.

Primeiro, abra o arquivo com segurança:

sudo visudo

Vá até o final do arquivo ou procure a seção "User privilege specification" e adicione a linha abaixo:

alex    ALL=(ALL:ALL) ALL

Detalhamento da regra:

  • alex: o nome de usuário ao qual os privilégios serão concedidos.
  • O primeiro ALL: a regra se aplica a conexões de qualquer Host.
  • (ALL:ALL): o usuário pode executar comandos como qualquer User (por exemplo, root) e com qualquer Group.
  • O ALL final: o usuário pode executar Any Command.

Essa regra é intencionalmente ampla para fins didáticos. Em sistemas reais, os administradores geralmente preferem regras de sudo mais restritas, que permitam comandos específicos em vez de acesso total e irrestrito.

Por fim, salve o arquivo e saia:

  • Pressione Ctrl+O e, em seguida, Enter para salvar.
  • Pressione Ctrl+X para sair.

Se você tivesse cometido um erro de digitação, o visudo teria emitido um aviso, impedindo uma configuração corrompida.

Verificar os privilégios atualizados

Agora que atualizamos a configuração, alex deve ter direitos administrativos completos. Vamos verificar isso.

Primeiro, mude para o usuário alex:

su - alex

Em seguida, tente executar novamente o comando privilegiado:

sudo ls /root

Digite password se for solicitado.

Observe o resultado. Agora você deverá ver o conteúdo do diretório /root — provavelmente vazio ou contendo alguns arquivos de implementação — sem erros de acesso negado.

snap

Isso confirma que você elevou os privilégios do usuário alex com sucesso.

Nesse ponto, alex ainda não é root por padrão. Em vez disso, alex recebeu a capacidade de solicitar a execução com privilégios elevados por meio do sudo, o que é mais seguro e permite auditoria melhor do que fazer login normalmente como root.

Por fim, encerre a sessão de alex:

exit

Resumo

Neste laboratório, você aprendeu a gerenciar com segurança os privilégios de usuários.

Principais aprendizados:

  1. Segurança em primeiro lugar: sempre use visudo para editar /etc/sudoers. Nunca edite o arquivo diretamente.
  2. Delegação de privilégios: você pode conceder acesso de root a usuários específicos sem compartilhar a senha de root.
  3. Verificação: sempre teste os novos privilégios para garantir que funcionam conforme o esperado.

Dominar a configuração do sudoers permite criar um sistema seguro, no qual cada usuário tem exatamente as permissões necessárias — nem mais, nem menos.