Como utilizar o comando Sudo no Linux

No Linux e em outros sistemas operacionais semelhantes, apenas usuários privilegiados como o “root” podem executar todos os comandos e realizar operações críticas no sistema, como por exemplo instalar e atualizar, remover pacotes, criar usuários, grupos, modificar determinados arquivos de configuração do sistema e algumas coisas mais.

Ao tentar realizar qualquer um desses processos sem ser um usuário privilegiado, você deveria receber uma mensagem de alerta, como permissão negada (Permission denied) por exemplo:

Um administrador de sistemas com a função de usuário root pode permitir que outros usuários “normais” do sistema, executem alguns comandos, ou realizem operações críticas do sistema apenas utilizando os poderes do comando SUDO.

SUDO = Super User DO

Em uma tradução simples: Super Usuário faça!

Então ao invocar o comando “sudo”, você está dizendo ao sistema: super usuário faça o comando xxx.

No exemplo abaixo estou dizendo para executar o comando “apt update”:

Mas como sei se meu usuário “normal” (metalhead) tem certos poderes? Ou como sei se ao digitar o sudo antes do comando vou ter determinados privilégios?

Para isto existe o arquivo de configurações “sudoers” que fica armazenado em /etc/sudoers. No entanto não recomenda-se editar o arquivo normalmente e sim utilizar o comando “visudo”.

Experimente o comando:

$ sudo visudo

Geralmente, o usuário padrão que criamos na instalação já está no grupo sudo e por isto você tem acesso digitando o comando acima.

Observe nas ultimas linhas que temos a especificação do usuario “root” e logo abaixo temos a permissão de usuários do grupo “%sudo” poder executar qualquer comando:

Então agora ficou claro que, em tese, quem pertencer ao grupo %sudo poderá executar processos privilegiados utilizando o comando sudo antes do comando.

Para ver os usuários que pertencem ao grupo “sudo”, utilizamos o comando “getent [database] [nome da database]”. No exemplo temos a database de grupos (group) e o nome da base que é o grupo em si (sudo):

$ getent group sudo

Na saida é exibido então que apenas o usuario “metalhead” é quem está associado ao grupo “sudo”.

Uma vez que este usuário pode rodar comandos de super usuário, vamos criar um novo usuário chamado “logan” e verificar suas propriedades em seguida.

Para isto vamos digitar:

$ sudo adduser logan

Preencha todas as informações do novo usuario, senha, nome completo e se desejar mais alguns detalhes da conta e confirme:

Em seguida vamos utilizar novamente o comando “getent” para verificar as informações de nome de usuário, UserID e diretório home padrão e o shell padrão:

Vamos testar na pratica se nosso usuário tem algum direito. Para isto temos que trocar o usuário que estamos em sessão, para fazer isto diretamente do terminal, existe o comando “su” (diferente do sudo):

$ su logan

Pronto, já estamos logado com o usuario “logan”:

Agora podemos tentar executar um comando privilegiado a partir deste novo usuario:

Veja que a mensagem diz claramente que o usuario “logan” não está dentro do arquivo sudoers, ou seja, ele não pertence a nenhum grupo que tenha tais poderes.

Vamos adicionar o usuario logan ao grupo “sudo”. Para isto basta voltar ao usuario “metalhead” (digite “exit”) e em seguida digite:

$ sudo usermod -a -G sudo logan

Verificamos então novamente o grupo sudo:

Agora nosso usuario “logan” já pertence ao grupo sudo, e pode executar os comandos:

Teste aí!!

Leave a Reply

O seu endereço de email não será publicado. Campos obrigatórios marcados com *