Visão Geral
No Linux, alguns comandos só podem ser executados pelo usuário root . Por padrão, este superusuário tem acesso a todos os comandos e recursos do nosso sistema.
No entanto, executar tarefas delicadas sem restrições é perigoso. Por exemplo, um erro intencional ou acidental pode quebrar todo o sistema. Como resultado, o Linux incentiva o uso do sudo . Este é um comando que fornece a um usuário normal os privilégios de superusuário necessários para executar tarefas administrativas. Ao trabalhar com sudo, podemos encontrar o erro ‘O nome de usuário não está no arquivo sudoers. Este incidente será relatado.’
Neste tutorial, discutiremos as diferentes abordagens usadas para corrigir esse erro.
Razões do erro
Primeiro, observemos que às vezes não precisamos corrigir esse erro, como se o administrador do sistema restringisse intencionalmente nosso acesso como medida de segurança. Esta restrição causa o problema que enfrentamos agora. Neste caso teremos que trabalhar com as permissões que o administrador definiu para nós.
Por outro lado, se tivermos controle genuíno sobre nosso sistema, podemos resolver esse problema.
Então, vamos começar reproduzindo o erro:
$ sudo ls
[sudo] password for sebastian:
sebastian is not in the sudoers file. This incident will be reported.
Acima, ‘sebastian não está no arquivo sudoers’ significa simplesmente que o usuário sebastian não está presente no arquivo sudoers . Este é um arquivo que define privilégios de usuário e grupo de usuários para tarefas relacionadas ao sudo . Além disso, ‘Este incidente será relatado’ declara que o Linux cria um relatório desta operação sudo com falha . Este relatório registra o que aconteceu durante este incidente sudo .
Adicionando o nome de usuário ao arquivo Sudoers
Nosso principal objetivo aqui é adicionar o usuário diretamente ao arquivo sudoers . Então precisamos mudar para o usuário root , já que sebastian não pode realizar nenhuma tarefa administrativa:
$ su root
Password:
Depois de fazer a troca, editaremos o arquivo sudoers usando nano . Este é um editor de texto que nos permite editar arquivos a partir da linha de comando:
nano /etc/sudoers
Agora o arquivo sudoers está pronto para edição.
Vamos adicionar uma linha abaixo da especificação de privilégio do usuário. Seu objetivo é conceder ao usuário do sistema os privilégios de superusuário mencionados:
User privilege specification
root ALL=(ALL:ALL) ALL
sebastian ALL=(ALL:ALL) ALL
Agora sebastian pode realizar tarefas que requerem acesso root.
Logo após fazer a alteração, precisamos salvar essas alterações e sair do editor de texto. Para fazer isso, pressionaremos as teclas CTRL+X para sair, Y para salvar e Enter para enviar. Finalmente, podemos sair da sessão root.
- Adicionando o nome de usuário ao grupo sudo
Como na solução acima, é importante primeiro mudarmos para o usuário root :
$ su root
Password:
O comando su nos permite realizar tarefas com as permissões de outro usuário, que neste caso é root .
A seguir, mostraremos o conteúdo do arquivo sudoers . Vamos nos concentrar nas linhas que declaram os privilégios dos usuários, bem como os dos grupos de usuários:
cat /etc/sudoers
User privilege specification
root ALL=(ALL:ALL) ALL
Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
Conforme mostrado acima, o usuário root e os membros dos grupos admin e sudo têm privilégios de superusuário.
Mais uma vez, o grupo sudo está presente, já que estamos em uma distribuição baseada em Debian. Em uma distribuição Linux baseada em Red Hat, encontraremos o grupo de usuários root . É o equivalente ao grupo de usuários sudo para distribuições baseadas em Red Hat.
Agora, como estamos operando no Debian, vamos adicionar nosso usuário ao grupo sudo :
usermod -aG sudo sebastian
Aqui, o comando usermod nos permite modificar os atributos do nosso usuário.
Em particular, usamos a opção -G para declarar que gostaríamos de atualizar as informações do grupo do nosso usuário sebastian . Além disso, a opção -a garante que outros grupos associados a este usuário não sejam excluídos no processo. Como resultado, sebastian agora pode realizar tarefas administrativas com sudo . Nas distribuições Red Hat, substituir sudo por root fornece resultados semelhantes.
Assim que terminarmos, sairemos da sessão do usuário root :
exit
Agora voltamos à nossa sessão de usuário anterior.
Conclusão
Neste artigo, explicamos brevemente o significado do erro do Linux ‘O nome de usuário não está no arquivo sudoers. Este incidente será relatado.’ Em seguida, demonstramos duas soluções aplicáveis para resolver esse problema.
Deixe um comentário