Como adicionar um usuário ao arquivo sudoers no Linux
Publicados: 2022-11-02 As pessoas que podem usar o comando sudo
do Linux são membros de um pequeno e seleto clube, às vezes chamado de lista de “sudoers”. Cada membro tem os mesmos poderes que o root
. Então, como você se juntar a esse clube? Veremos como adicionar uma pessoa aos sudoers, bem como editar o arquivo sudoers para limitar as permissões.
sudo: Seu alter-ego superpoderoso
O arquivo sudoers e visudo
Adicionar um novo usuário sudo no Ubuntu e outras distribuições Linux
Limite os privilégios do sudo editando o arquivo sudoers
Quem detém este comando
sudo: Seu alter-ego superpoderoso
Nas instalações do Linux, o usuário root é o usuário mais privilegiado. Eles podem executar qualquer tarefa administrativa, acessar qualquer arquivo independentemente de realmente o possuir e podem criar, manipular e até remover outros usuários.
Este nível de poder é perigoso. Se o root
cometer um erro, os resultados podem ser catastróficos. Eles têm a capacidade de montar e desmontar sistemas de arquivos e sobrescrevê-los completamente. Uma maneira muito mais segura de trabalhar é nunca fazer login como root
.
Os usuários indicados podem usar o sudo
para obter poderes administrativos temporariamente, executar a ação necessária e retornar ao estado normal e sem privilégios. Isso é mais seguro porque você invoca conscientemente seus poderes superiores quando precisa deles e enquanto está focado em fazer o que quer que os exija.
O comando sudo
é o equivalente Linux de gritar “Shazam”. Quando as coisas assustadoras terminam, você abandona seu alter ego superpoderoso e volta ao seu eu normal e monótono.
O login como root
é desativado por padrão na maioria das distribuições modernas, mas pode ser restabelecido. Usar a conta root para o trabalho diário é desaconselhável. Erros que normalmente afetariam um único usuário ou que seriam bloqueados por completo devido a privilégios insuficientes podem ser executados sem impedimentos se o root
os emitir.
As distribuições Linux modernas concedem privilégios sudo
à conta de usuário criada durante as etapas de instalação ou configuração pós-instalação. Se alguém tentar usar sudo
, verá uma mensagem de aviso como esta:
mary não está no arquivo sudoers. Este incidente será relatado.
Isso parece bastante claro. Nossa usuária mary
não pode usar sudo
porque ela não está “no arquivo sudoers”. Então vamos ver como podemos adicioná-la.
RELACIONADO: Como controlar o acesso sudo no Linux
O arquivo sudoers e visudo
Antes que alguém possa usar o comando sudo
, precisamos trabalhar com o arquivo sudoers
. Isso lista os grupos de usuários dos usuários que podem usar sudo
. Se precisarmos fazer alterações no arquivo, devemos editá-lo.
O arquivo sudoers
deve ser aberto usando o comando visudo
. Isso bloqueia o arquivo sudoers
e evita que duas pessoas tentem fazer alterações ao mesmo tempo. Ele também realiza algumas verificações de sanidade antes de salvar suas edições, garantindo que elas sejam analisadas corretamente e sejam sintaticamente corretas.
Observe que o visudo
não é um editor, ele inicia um de seus editores disponíveis. No Ubuntu 22.04, Fedora 37 e Manjaro 21, visudo
lançou o nano. Isso pode não ser o caso no seu computador.
Se quisermos dar a alguém acesso a privilégios sudo
completos, precisamos apenas referenciar algumas informações do arquivo sudoers
. Se quisermos ser mais granulares e dar ao nosso usuário alguns dos recursos do root
, precisamos editar o arquivo e salvar as alterações.
De qualquer forma, precisamos usar visudo
.
RELACIONADO: Como sair do editor Vi ou Vim
Adicionar um novo usuário sudo no Ubuntu e outras distribuições Linux
Temos dois usuários que precisam de acesso a privilégios de root para desempenhar suas funções de trabalho. Eles são Tom e Maria. Mary precisa ter acesso a tudo que o root
pode fazer. Tom só precisa instalar aplicativos.
Vamos adicionar Mary ao grupo dos sudoers primeiro. Precisamos iniciar o visudo
.
sudo visudo
Role para baixo no editor até ver a seção “User Privilege Specification”. Procure um comentário que diga algo semelhante a “Permitir que membros deste grupo executem qualquer comando”.
Dizem-nos que os membros do grupo sudo
podem executar qualquer comando. Tudo o que precisamos saber no caso de Mary é o nome desse grupo. Nem sempre é sudo
; pode ser wheel
ou outra coisa. Agora que sabemos o nome do grupo, podemos fechar o editor e adicionar Maria a esse grupo.
Estamos usando o comando usermod
com as opções -a
(anexar) e -G
(nome do grupo). A opção -G
nos permite nomear o grupo ao qual gostaríamos de adicionar o usuário, e a opção -a
diz ao usermod
para adicionar o novo grupo à lista de grupos existentes em que esse usuário já está.
Se você não usar a opção -a
, o único grupo em que seu usuário estará é o grupo recém-adicionado. Verifique novamente e certifique-se de incluir a opção -a
.
sudo usermod -aG sudo mary
Na próxima vez que Mary fizer login, ela terá acesso a sudo
. Nós a conectamos e estamos tentando editar o arquivo da tabela do sistema de arquivos, “/etc/fstab.” Este é um arquivo que está fora dos limites para todos, exceto para o root
.
sudo nano /etc/fstab
O editor nano abre com o arquivo “/etc/fstab” carregado.
Sem privilégios sudo
, você só poderá abri-lo como um arquivo somente leitura. Mary não tem mais essas restrições. Ela pode salvar quaisquer alterações que fizer.
Feche o editor e não salve as alterações feitas.
Limite os privilégios do sudo editando o arquivo sudoers
Nosso outro usuário, Tom, receberá permissão para instalar software, mas não receberá todos os privilégios concedidos a Mary.
Precisamos editar o arquivo sudoers
.
sudo visudo
Role para baixo no editor até ver a seção “User Privilege Specification”. Procure um comentário que diga algo semelhante a “Permitir que os membros deste grupo executem qualquer comando”. É o mesmo ponto no arquivo em que encontramos o nome do grupo ao qual precisávamos adicionar Maria.
Adicione estas linhas abaixo dessa seção.
# usuário tom pode instalar software tom ALL=(root) /usr/bin/apt
A primeira linha é um comentário simples. Observe que há uma guia entre o nome de usuário "tom" e a palavra "Todos".
Isto é o que os itens na linha significam.
- tom : O nome do grupo padrão do usuário. Normalmente, é o mesmo que o nome de sua conta de usuário.
- ALL= : Esta regra se aplica a todos os hosts nesta rede.
- (root) : Os membros do grupo “tom”—ou seja, o usuário Tom—podem assumir privilégios de
root
, para os comandos listados. - /usr/bin/apt : Este é o único comando que o usuário Tom pode executar como
root
.
Especificamos o gerenciador de pacotes apt
aqui porque este computador usa o Ubuntu Linux. Você precisa substituir isso pelo comando apropriado se estiver usando uma distribuição diferente.
Vamos fazer o login do Tom e ver se obtemos o comportamento esperado. Tentaremos editar o arquivo “/etc/fstab”.
sudo nano /etc/fstab
Esse comando é rejeitado e nos dizem que “o usuário tom não tem permissão para executar '/usr/bin/nano /etc/fstab' como root …”
Isso é o que queríamos. O usuário Tom só deve ser capaz de usar o gerenciador de pacotes apt
. Vamos ter certeza de que eles podem fazer isso.
sudo apt instalar neofetch
O comando é executado com sucesso para Tom.
Quem detém este comando
Se todos os seus usuários puderem usar sudo
, você terá o caos em suas mãos. Mas vale a pena promover outros usuários para que eles possam compartilhar sua carga administrativa. Apenas certifique-se de que eles são dignos e fique de olho neles.
Mesmo se você for o único usuário em seu computador, vale a pena considerar criar outra conta de usuário e dar a ela acesso total ao sudo
. Dessa forma, se você se encontrar bloqueado em sua conta principal, terá outra conta com a qual poderá fazer login para tentar remediar a situação.
RELACIONADO: Como revisar o uso do comando sudo no Linux