Nenhum produto encontrado nessa seleção.
Su, Sudo e Sudoers no Linux: Neste tutorial você vai entender as permissões de usuários regulares e permissões de superusuário (root) no Linux.
Separação de privilégios é algo fundamental para a segurança de qualquer sistema operacional seja ele um servidor ou um computador pessoal. O Linux faz este papel muito bem não permitindo que nenhum usuário padrão execute tarefas que podem afetar a segurança do sistema como um todo (com exceção do superusuário – root).
Nós já detalhamos como gerenciar usuários no Linux aqui no TEO, mas hoje você vai entender melhor como funciona o sistema de usuários com maior foco no superusuário root, que pode fazer praticamente tudo dentro do seu Linux. Vamos detalhar como logar com o root utilizando o comando su, como executar tarefas com o root utilizando sudo e como manipular o arquivo sudoers para elevar privilégios de usuários dentro do sistema com segurança.
Não se preocupe se você é novato ou avançado no Linux, este tutorial vai do básico ao avançado, com algumas dicas para que você entenda melhor o que está acontecendo.
Então vamos lá?
Su, Sudo e Sudoers no Linux
Su, Sudo e Sudoers fazem papéis relativamente diferentes no sistema para atingir um mesmo objetivo, obter acesso elevado com o superusuário root do Linux.
Vamos dividi-los em partes e detalhar o que cada um faz.
Su
Uma maneira bem simples para obter acesso ao usuário root utilizando qualquer outro usuário é utilizando o comando “su”, simplesmente abra o terminal e digite o comando e o seguinte irá acontecer:
O processo acima segue os seguintes passos:
- Abra o terminal;
- Digite “su”;
- Digite a senha do usuário root;
- Se a senha estiver correta, um shell do usuário root é aberto dentro do terminal, a partir daí você é o rei do Linux;
O comando su pode ser utilizado por qualquer usuário por um fato bem simples, você precisa saber a senha do root para efetuar o login, caso contrário nada é feito.
Uma dica neste caso é que você evite utilizar o comando “su” e prefira “sudo”, porque o comando “su” faz login com o usuário root, permitindo executar tarefas de superusuário. Caso você faça algo imprudente dentro do sistema ao utilizar o comando “su” efetivamente, pode ser que você danifique o bom funcionamento do seu Linux.
Sudo
O comando “sudo” tem uma função similar à do “su” porém tem alguns detalhes que trazem maior segurança para o sistema. Veja algumas das diferenças:
- Você não precisa saber a senha do usuário “root” para utilizar “sudo”, apenas do seu usuário;
- O comando “sudo” não faz login com o usuário “root” apenas executa a tarefa requisitada como “root” e volta para seu shell;
- Este comando é controlado pelo arquivo “sudoers” que, dentre milhares de outras coisas, indica quais usuários podem executar quais tarefas no sistema;
- Você pode permitir que determinados usuários utilizem o comando “sudo” sem a necessidade de digitar sua senha (menos seguro);
Para executar tarefas com o superusuário root sem fazer login com o mesmo, simplesmente adicione “sudo” antes do comando que deseja executar, por exemplo, se eu quiser executar o comando “ifconfig”, ficaria assim:
sudo ifconfig
Na primeira vez que você executar o “sudo” dentro de um shell, sua senha será requisitada (dependendo da configuração do sudoers). Ao digitar a senha, ela não será mais requisitada até que o tempo de inatividade (timestamp_timeout) que estiver configurado no sudoers termine. Em outras palavras, ao utilizar “sudo” efetivamente uma vez, você só precisará digitar a senha novamente se ficar um determinado tempo sem utilizar o sudo novamente.
Os usuários que podem utilizar o comando “sudo” são definidos no arquivo “sudoers” (o qual vamos falar a seguir), se um usuário não estiver presente neste arquivo e tentar utilizar o “sudo”, receberá a seguinte mensagem:
usuario não está no arquivo sudoers. Este incidente será relatado.
Conforme imagem abaixo:
Vamos ver como editar o arquivo sudoers.
Editando o arquivo sudoers (visudo)
O arquivo sudoers pode ser editado com qualquer editor pelo superusuário root, porém, não é recomendado. O ideal é que você utilize o comando visudo. Por exemplo:
sudo visudo
Isso evita que você faça alguma besteira e perca o acesso ao “sudo” no seu Linux. Mas, se quiser correr o risco, basta editar o arquivo /etc/sudoers.
Ao digitar “sudo visudo” você verá um arquivo com várias coisas já configuradas (isso vai variar de distro pra distro – tenho usado o Debian 8 ultimamente).
Este arquivo pode conter milhares de configurações para controlar os acessos ao “sudo” do seu Linux, das quais você pode encontrar mais informações no manual. Para acessar o manual digite:
man sudoers
Porém vou detalhar algumas coisas importantes para que você possa entender melhor como dar privilégios para usuários no seu Linux.
As seguintes linhas são bastante importante pra gente:
root ALL=(ALL:ALL) ALL %sudo ALL=(ALL:ALL) ALL
Elas indicam que o usuário “root” e membros do grupo “sudo” podem executar tudo dentro do sistema. Vamos detalhar melhor essas linhas começando pela primeira:
- root – indica o nome do usuário que iremos configurar para obter acesso ao sudo, neste caso o usuário root;
- ALL= – O primeiro ALL seguido do sinal de igual (=) indica o host, neste caso estamos indicando “todos os hosts”;
- (ALL:ALL) – Esta combinação de (ALL:ALL) indica que o usuário “root” pode executar comandos como todos os usuários e grupos respectivamente.
- ALL – O último ALL indica que essa regra aplica-se a qualquer comando que o usuário estiver tentando executar com o “sudo”.
Para a segunda linha temos o seguinte:
- %sudo – indica o nome do grupo que iremos configurar para obter acesso ao sudo, neste caso o grupo “sudo”;
- ALL= – O primeiro ALL seguido do sinal de igual (=) indica os hosts, neste caso estamos indicando “todos os hosts”;
- (ALL:ALL) – Esta combinação de (ALL:ALL) indica que o grupo “sudo” pode executar comandos como todos os usuários e grupos respectivamente.
- ALL – O último ALL indica que essa regra aplica-se a qualquer comando que um usuário do grupo sudo estiver tentando executar com o comando “sudo”.
Se você quiser adicionar um usuário para ter acesso completo ao sudo, simplesmente adicione uma linha da seguinte maneira:
luizotavio ALL=(ALL:ALL) ALL
E agora o usuário luizotavio poderá utilizar sua própria senha para obter acesso ao comando “sudo”, ou seja, executar comandos com o superusuário root.
Se você quiser ir um pouco além e especificar quais os comandos você deseja que o usuário execute, adicione o seguinte:
usuario ALL=(ALL:ALL) /usr/bin/apt-get, NOPASSWD:/sbin/ifconfig
No trecho acima, o usuário chamado “usuario” poderá executar o comando “apt-get” utilizando sua própria senha e o comando “ifconfig” (sem digitar nenhuma senha). Perceba que “NOPASSWD:” antes do comando, indica que o usuário pode executar aquele comando sem digitar senha nenhuma.
Vídeo tutorial
O vídeo tutorial abaixo detalha o que foi descrito acima.
Link do vídeo: https://www.youtube.com/watch?v=aTbEhjvlmxg
Concluindo
A parte de segurança do Linux é fascinante, tome algum temo para ler o manual do sudoers e entender melhor o que você pode fazer ali, essa é uma das partes mais críticas de um sistema que envolve mais de um usuário.
Até o próximo tutorial!