Os poderes do super usuário root em sistemas Linux, ou apenas root, deixa os iniciantes bem intrigados. A capacidade desse usuário é realmente ilimita, aqui vamos aprender a utilizar esses recursos com moderação.
No universo Linux há diversos aspectos presentes nos procedimentos mais simples, como o uso de terminal e comandos, sendo a hierarquia de usuários um dos elementos notáveis e importantes.
Graças a isso, podemos, por exemplo, restringir acesso a várias atribuições, bem como a criação do usuário root (ou user root, do inglês).
O usuário root, como o termo deixa a entender, é aquele que tem acesso irrestrito a todos os componentes do sistema Linux. Não por acaso, este é o usuário que melhor deve ser protegido, sobretudo contra os invasores, visto que o acesso indevido pode fazer de refém a toda uma empresa.
Por outro lado, o usuário root é bastante utilizado pelo administrador de sistemas para resolver determinados problemas. Quando digo “determinados”, refiro-me a situações cuja solução requer poderes ilimitados quanto a permissões. Até por isso, ele não deve, em hipótese alguma, ser acionado de maneira banal.
Agora que você está ciente da importância desse usuário existente em todos os sistemas baseados em Linux, vejamos o que pode ser feito em relação ao uso e gerenciamento da conta (login, comandos, senha etc.). Vamos começar?
Conceituando o usuário root
Reiterando o que falei no início do artigo, a hierarquia de usuários faz parte das características do Linux e, por essas e outras, o sistema é considerado o mais seguro em relação ao Windows, por exemplo. Por ora, deixemos de lado as comparações.
No sistema Linux, o user é utilizado para atribuir acesso e permissões aos usuários da rede a determinados arquivos. Por exemplo, na medida em que um determinado usuário gera um arquivo ou processo, em tese, apenas ele (e usuários autorizados, se for o caso) pode “manipulá-lo”, certo? Não necessariamente.
O usuário root tem o poder de acessar todo e qualquer arquivo ou processo do sistema. Nesse sentido, imaginemos o Linux como uma árvore que cresce a cada bit gerado e o root, a raiz — que é a tradução literal de “root”. Se todos os dados e programas em execução estão ramificados à árvore, logo todos pertencem à raiz.
Portanto a origem do root user faz dele um usuário com privilégios ilimitados, ou seja, no exemplo acima, o root teria plena autonomia para manipular o arquivo ou processo em questão. Todavia, ainda me resta esclarecer-lhe: qual é a diferença do root para o superusuário root?
Superusuário root
O superusuário root (ou root superuser, do inglês) é a derivação do root. Mais precisamente, é um tipo de usuário cujos privilégios são os mesmos do root. Isso significa que todos os poderes podem ser concedidos a outros usuários da rede — administradores de sistemas em diferentes níveis, por exemplo.
Seguindo a metáfora da árvore e a raiz, podemos desenhar o superusuário root como uma ramificação da raiz, a qual também está ligada a todos os arquivos e processos, mas não goza de soberania dentro da árvore.
Além de o superusuário root ser útil na concessão de permissões abrangentes para outros membros do grupo, ele facilita, por meio do comando sudo, a instalação e implementação de programas que exigem permissões irrestritas, como servidores web e banco de dados.
Tudo certo até aqui? Ótimo. Agora que você já entende a peculiaridade do usuário root, vejamos como realizar alguns procedimentos básicos de gerenciamento.
Habilitando e desabilitando o login de root user no Ubuntu
As versões do Ubuntu, por padrão, não solicitam a configuração de usuário root durante a instalação. Em vez disso, ele permite a criação de usuário com privilégios de superusuário root.
No entanto, isso não significa que o root user seja inexistente; o Ubuntu apenas o manteve desabilitado. Os desenvolvedores do sistema não recomendam a ativação do usuário root por questões de segurança e, também, porque os privilégios de superusuário são considerados suficientes para realizar as ações que necessitar.
Caso você necessite logar como root user, o procedimento para habilitá-lo é muito simples. Abra o terminal como superusuário e digite o comando sudo psswd root. Levando em conta os riscos assumidos ao fazê-lo, é recomendado consultar a comunidade antes de se decidir.
Por outro lado, se o objetivo é desabilitar a conta, digite o comando: sudo passwd -dl root. Muito simples, não é mesmo?
Desabilitando a conta root no Linux
Em sistemas operacionais baseados no Linux, a desativação da conta de usuário root pode ser realizada de diferentes maneiras, sendo o requisito o login como superusuário.
O método mais simples é alterar o Shell do usuário root. Para isso, abra um editor de linha de comando e digite: sudo vim /etc/passwd.
Em seguida, modifique a linha “root:x:0:0:root:/root:/bin/bash” para “root:x:0:0:root:/root:/bin/nologin” e, então, salve o arquivo e feche-o. A partir de então, ao tentar logar como root, você receberá a mensagem: “This account is currently not available”.
Redefinindo a senha do usuário root
Perder a senha do usuário root é, sem dúvidas, um grande problema — porém é possível resolvê-lo. O primeiro passo é reiniciar o sistema no modo Single User (pressione a tecla e durante a inicialização).
Aguarde a tela carregar. Perceba que um bloco de texto surgiu e nele há uma série de informações técnicas. Identifique os termos rhgb quiet e os substitua por init=/bin/bash e pressione CRTL + X para dar boot no sistema.
O prompt será aberto novamente, então digite o comando grep root para checar o status da partição root, conforme o exemplo:
mount | grep root
Certamente você receberá a mensagem de que a partição só está disponível para leitura (read only – “ro”). Não há como modificar a senha com esse status, certo? Então modifique as permissões usando os seguintes comandos:
mount -o remount,rw / mount | grep root
Se a alteração foi realizada com sucesso, o prompt retornará uma solicitação para redefinição da senha do root user. Basta inseri-la e, depois, reiniciar o sistema.
Usando os comandos “su” e “su -”
Diferenciar os comandos “su” e “su –“ é uma dúvida recorrente entre os usuários mais novos do Linux. Tratam-se de dois comandos utilizados para fazer login como outro usuário, mas, embora a finalidade seja a mesma, o resultado é diferente. Por exemplo:
$ su e-tinet
O comando acima faz a troca de usuário, porém o user e-tinet iniciará a sessão a partir do diretório pertencente a quem estava usando a máquina. Entretanto, se utilizar o comando su sem especificar o nome de usuário, automaticamente fará o login como superusuário root.
Em contrapartida, quando o comando é seguido do traço + nome do usuário (su – e-tinet), o login é realizado normalmente e a sessão se inicia a partir do diretório home de quem acaba de logar — no exemplo acima, o usuário e-tinet.
Ao longo deste conteúdo, aprendemos a gerenciar o usuário root para diversas finalidades. Com isso, você pode experimentar criar uma máquina virtual do Linux usando o VirtualBox e, então, praticar atividades e configurações mais avançadas. O que achou da ideia?
Já que estamos falando em conhecimentos avançados, sugiro que acesse a página do Profissionais Linux, onde disponibilizo conteúdos que o ajudarão a dominar o Linux de uma vez por todas.