Se um sudo
comando no Linux receber uma mensagem de que um usuário “não está no arquivo sudoers”, você precisará entrar na lista “sudoers”. Veremos como adicionar um usuário aos sudoers no Ubuntu e outras distribuições Linux, bem como editar o arquivo sudoers.
Índice
Por que preciso ser adicionado ao arquivo sudoers?
Nas instalações do Linux, o usuário root é o usuário com mais privilégios. Eles podem executar qualquer tarefa administrativa, acessar qualquer arquivo, independentemente de sua propriedade, e podem criar , manipular e até mesmo remover outros usuários .
Este nível de poder é perigoso. Se 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 comoroot
.
Os usuários nomeados podem usar sudo
para obter temporariamente poderes administrativos, executar a ação necessária e, em seguida, retornar ao seu 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 tudo o que exige deles.
O sudo
comando é o equivalente no Linux a gritar “ Shazam ”. Quando a coisa assustadora acaba, você abandona seu alter ego superpoderoso e volta ao seu eu normal e monótono.
O login como root
está desativado por padrão na maioria das distribuições modernas, mas pode ser reinstaurado. Usar a conta root para o trabalho diário é desaconselhável. Erros que normalmente afetariam um único usuário ou que seriam totalmente bloqueados devido a privilégios insuficientes podem ser executados sem impedimentos se forem root
cometidos.
As distribuições modernas do Linux concedem sudo
privilégios à 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. Nosso usuário mary
não pode usar sudo
porque não está “no arquivo sudoers”. Então vamos ver como podemos adicioná-la, tornando-a uma usuária sudo.
Como abrir o arquivo sudoers
Antes de podermos adicionar um sudo
usuário, precisamos trabalhar com o sudoers
arquivo. Isso lista os grupos de usuários que podem usar o sudo
. Se precisarmos fazer alterações no arquivo, devemos editá-lo.
O sudoers
arquivo deve ser aberto usando o visudo
comando. Isso bloqueia o sudoers
arquivo e evita que duas pessoas tentem fazer alterações ao mesmo tempo. Ele também realiza algumas verificações de integridade antes de salvar suas edições, garantindo que elas sejam analisadas corretamente e sintaticamente corretas.
Observe que visudo
não é um editor, ele inicia um dos editores disponíveis. No Ubuntu 22.04, Fedora 37 e Manjaro 21 visudo
lançaram o nano . Esse pode não ser o caso do seu computador.
Se quisermos dar a alguém acesso total a sudo
privilégios, só precisamos fazer referência a algumas informações do sudoers
arquivo. Se quisermos ser mais granulares e fornecer ao usuário alguns dos recursos do root
, precisamos editar o arquivo e salvar as alterações.
De qualquer forma, precisamos usar visudo
.
Adicione um 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, então vamos adicioná-los aos sudoers. Eles são Tom e Maria. Maria precisa ter acesso a tudo root
que pode fazer. Tom só precisa instalar aplicativos.
Vamos adicionar Mary ao grupo dos sudoers primeiro. Podemos fazer isso no Ubuntu e na maioria das outras distribuições Linux da mesma maneira, iniciando o visudo
.
sudo visudo
Role para baixo no editor até ver a seção “Especificação de privilégio do usuário”. Procure um comentário que diga algo semelhante a “Permitir que membros deste grupo executem qualquer comando”.
Disseram-nos que os membros do sudo
grupo podem executar qualquer comando. Tudo o que precisamos saber no caso de Mary é o nome desse grupo. Nem sempre é sudo
; pode ser wheel
ou algo mais. Agora que sabemos o nome do grupo, podemos fechar o editor e adicionar Mary a esse grupo .
Estamos usando o usermod
comando com as opções -a
(anexar) e -G
(nome do grupo) para adicionar usuários aos sudoers. A -G
opção nos permite nomear o grupo ao qual gostaríamos de adicionar o usuário, e a -a
opção diz usermod
para adicionar o novo grupo à lista de grupos existentes em que este usuário já pertence.
Se você não usar a -a
opção, o único grupo em que seu usuário estará será o grupo recém-adicionado. Verifique novamente e certifique-se de incluir a -a
opção.
sudo usermod -aG sudo mary
Na próxima vez que Mary fizer login, ela terá acesso ao 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 do alcance de todos, exceto root
.
sudo nano /etc/fstab
O editor nano abre com o arquivo “/etc/fstab” carregado.
Sem sudo
privilégios, você só poderá abri-lo como um arquivo somente leitura. Maria não tem mais essas restrições. Ela pode salvar todas as alterações que fizer.
Feche o editor e não salve nenhuma alteração que você possa ter feito.
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. Podemos tornar Tom um usuário sudo sem conceder a ele todos os privilégios.
Precisamos editar o sudoers
arquivo.
sudo visudo
Role para baixo no editor até ver a seção “Especificação de privilégio do usuário”. Procure um comentário que diga algo semelhante a “Permitir que os membros deste grupo executem qualquer comando”. É o mesmo ponto do arquivo onde encontramos o nome do grupo ao qual precisávamos adicionar Mary.
Adicione essas linhas abaixo dessa seção.
# usuário tom pode instalar o softwaretom ALL=(root) /usr/bin/apt
A primeira linha é um comentário simples. Observe que existe uma guia entre o nome de usuário “tom” e a palavra “Todos”.
Isso é o que significam os itens da linha.
- tom : O nome do grupo padrão do usuário. Geralmente é igual ao nome da conta de usuário.
- ALL= : Esta regra se aplica a todos os hosts nesta rede.
- (root) : Membros do grupo “tom” — ou seja, o usuário Tom — podem assumir
root
privilégios para os comandos listados. - /usr/bin/apt : Este é o único comando que o usuário Tom pode executar
root
.
Especificamos o apt
gerenciador de pacotes aqui porque este computador usa Ubuntu Linux. Você precisará substituir isso pelo comando apropriado se estiver usando uma distribuição diferente.
Vamos fazer login no Tom e ver se obtemos o comportamento esperado. Tentaremos editar o arquivo “/etc/fstab”.
sudo nano /etc/fstab
That command is rejected, and we’re told that “user tom isn’t allowed to execute ‘/usr/bin/nano /etc/fstab’ as root …”
That’s what we wanted. User Tom is only supposed to be able to use the apt
package manager. Let’s make sure they can do that.
sudo apt install neofetch
The command is successfully executed for Tom.
Whosoever Holds This Command
If all your users can use sudo
, you’ll have chaos on your hands. But it is worth promoting other users to the sudoers list so they can share your administrative burden. Just make sure they’re worthy, and keep an eye on them.
Mesmo que você seja o único usuário no seu computador, vale a pena considerar criar outra conta de usuário e adicioná-la como sudo
usuário. Dessa forma, se você tiver sua conta principal bloqueada , você terá outra conta com a qual poderá fazer login para tentar remediar a situação.