SUDO: O que é “sudo su” no Linux?

Ao longo do tempo, ensinando diversas pessoas sobre o mundo Linux, bem como na produção dos meus cursos de Linux, eu vi uma grande dificuldade para quem está começando (mas na verdade não sabem que existe esta dificuldade).

Aqui, eu estou falando de entender o que você está fazendo no Terminal. Entender o porque de um determinado resultado. Entender o objetivo do comando. Entender o sistema. E isso ocorre bastante quando vejo pessoas rodarem o sudo apt update mas não fazem a menor ideia do porque o sudo está ali na frente do comando.

Neste artigo, pretendo simplificar um pouco sobre o entendimento do comando sudo e como ele é utilizado no Linux.

SUDO antes e SUDO depois?

Ainda me lembro de quando comecei a utilizar Linux com o Debian Squeeze e sempre executávamos os comandos diretamente com o usuário root, sem a utilização do sudo. Então, quando comecei a utilizar este comando Ubuntu, eu não fazia a menor ideia do porque disso.

Sendo assim, antigamente, não havia uma camada de segurança para o usuário root. Ele era um usuário normal como qualquer outro, tinha uma senha padrão e bastava executar o comando su root e digitar a senha que era possível se tornar o super-usuário do sistema.

Atualmente, o método de autenticação sudo trás consigo uma forma diferente de acesso ao usuário root.

  • Não existe mais senha específica para o root
  • Não podemos mais acessa-lo via su root

O processo normal seria acessar um usuário e este usuário ter permissões de virar o root com a sua mesma senha (sim, eu disse virar e não logar como root). Por exemplo, o usuário mateus se executar o comando sudo su poderia se tornar o usuário root.

Desta forma, ele é muito mais seguro, pois nunca teremos uma senha padrão. Se um invasor quiser acesso de administrador, terá que passar pelo usuário normal primeiro, para depois, talvez, ter acesso ao super-usuário.

Como configurar o SUDO no Linux?

Toda a configuração do método sudo gira em torno do arquivo de configuração /etc/sudoers. Vamos dar uma olhadinha em algumas linhas:

  • $ sudo cat /etc/sudoers
SUDO: O que é "sudo su" no Linux?
SUDO: O que é “sudo su” no Linux?

Preste bastante atenção nas últimas linhas.

root ALL=(ALL:ALL) ALL esta linha define que o usuário root pode executar qualquer comando, de qualquer host em qualquer máquina.

%admin ALL=(ALL) ALL esta linha define que o grupo admin também terá privilégios de root, ou seja, todos os membros deste grupo.

%sudo ALL=(ALL:ALL) ALL esta linha também define a mesma coisa que o root, mas para o grupo de usuários sudo.

Geralmente, o usuário padrão que criamos na instalação já está no grupo sudo, vamos verificar?

  • $ sudo getent group sudo
SUDO: O que é "sudo su" no Linux?
SUDO: O que é “sudo su” no Linux?

Muito bem, o usuário mateus pode fazer tudo no sistema.

Vamos criar um novo usuário para testar.

  • $ adduser joao
  • $ su joao
  • $ sudo apt update
SUDO: O que é "sudo su" no Linux?
SUDO: O que é “sudo su” no Linux?

Veja que não podemos executar o update dos repositórios, pois só quem tem permissão de root está liberado para isso.

Vamos adiciona-lo ao grupo sudo para testar.

  • $ usermod -a -G sudo joao
SUDO: O que é "sudo su" no Linux?
SUDO: O que é “sudo su” no Linux?
  • $ sudo apt update
SUDO: O que é "sudo su" no Linux?
SUDO: O que é “sudo su” no Linux?

Agora atualizou normalmente, sem mais erros de permissão!

OBS: Não funcionou pois estava sem rede, mas note que o erro mudou completamente.

Bom pessoal, este foi o artigo de hoje, até a próxima!

Não esqueça de nos seguir no Instagram para receber os últimos conteúdos!

Participe dos nossos grupos no Telegram e Facebook!  

Veja também: