O que é “root” no Linux?

fatmawati achmad zaenuri / Shutterstock. com
O usuário root é a entidade mais poderosa do universo Linux com poderes ilimitados, para o bem ou para o mal. Criar um usuário? Entendi. Aniquilar um sistema de arquivos? Ops, também entendi.
A história da origem
O usuário root é o superusuário do Linux. Eles podem, literalmente, fazer qualquer coisa. Nada é restrito ou fora dos limites para o root. Se eles são super-heróis ou supervilões, depende do usuário humano que assume o papel de administrador do sistema. Erros cometidos pelo usuário root podem ser catastróficos, então a conta root deve ser usada exclusivamente para fins administrativos.
O conceito de usuário root foi herdado do Unix, que tinha um usuário root como seu superusuário administrativo. Mas onde o nome “ root ” vem de não é conhecido com certeza. Algumas pessoas pensam que veio do sistema operacional Multics, que é anterior ao Unix.
Ken Thompson e Dennis Ritchie, dois dos mais importantes arquitetos e autores do Unix, trabalharam anteriormente no Multics. O Multics tinha um sistema de arquivos que começava em um ponto denominado diretório raiz ou “ / ” e todos os outros diretórios e subdiretórios se ramificavam para baixo e para fora da raiz como uma árvore invertida. É o mesmo tipo de estrutura de árvore adotada pelo Unix. Então, talvez o Unix tenha adotado o usuário root do Multics também?
Pesquisar na documentação técnica do Multics revela uma infinidade de referências a volumes lógicos raiz, volumes físicos raiz, cartões raiz e o diretório raiz. Mas não há menção a uma conta de usuário root ou a um usuário chamado “ root. ”
Publicidade
Outra teoria é que nos primeiros dias do Unix, a pasta pessoal do superusuário era a raiz “ / ” do sistema de arquivos. O superusuário precisava de um nome. O termo “ usuário root ” tinha sido usado no lugar de um nome oficial, mas o termo permaneceu e se tornou o nome oficial.
Isso parece mais provável, mas ninguém parece ser capaz de dizer com certeza como o usuário root obteve esse nome.
O comando sudo
Em qualquer sistema operacional, é uma prática recomendada reservar o superusuário apenas para fins administrativos e usar uma conta de usuário normal no restante do tempo. Na verdade, a maioria das distribuições Linux modernas não permitem que você efetue login como o usuário root.
Claro, isso é Linux, então você pode configurá-lo para permitir que o usuário root efetue login. Mas quanto menos tempo você gasta logado como root, melhor. Além de se proteger contra desastres decorrentes de erros de digitação, se você não consegue fazer login como root, ninguém mais pode. Qualquer pessoa com acesso não autorizado ao seu sistema não será capaz de fazer login como root, limitando os danos que eles podem causar.
Mas se o login como root estiver desabilitado, como você administra seu computador Linux? Bem, é para isso que serve o comando sudo. Ele não exige que o usuário root faça login. Ele concede temporariamente os poderes de root a você. É como pegar o martelo Mjolnir de Thor e receber temporariamente os poderes de Thor. Mas você só pode pegar o martelo se for digno. Da mesma forma, não é qualquer pessoa que pode usar o comando sudo. O comando sudo só concede poderes de root a você se você for considerado digno e adicionado à lista de sudoers.

RELACIONADO Como controlar o acesso ao sudo no Linux
Existe outro comando semelhante ao sudo chamado su. Com o sudo, você se autentica usando sua própria senha. Com su, você autentica usando a senha do usuário root. Isso é significativo de duas maneiras. Em primeiro lugar, significa que você precisa atribuir uma senha ao usuário root para usar o su. Por padrão, o usuário root não tem senha e isso ajuda na segurança. Se o root não tiver uma senha, você não poderá fazer login como root.
Publicidade
Em segundo lugar, se você definir uma senha de root, todos que usarão o comando su precisam saber a senha. E compartilhar senhas é uma segurança proibida, e para a senha de root, ainda mais. Qualquer pessoa que conheça a senha de root pode contar a outra pessoa. Se você precisar alterar a senha de root, deverá comunicar a nova senha a todas as pessoas que precisam conhecê-la.
É muito mais seguro usar a lista de sudoers para restringir quem pode usar o sudo e permitir que cada pessoa com privilégios use suas senhas individuais para autenticação.
Usando sudo
O “ / etc / shadow ” arquivo contém o nome de usuário de cada conta em seu computador Linux, junto com outras informações, incluindo a senha criptografada de cada conta, quando a senha foi alterada pela última vez e quando a senha expira. Por conter informações confidenciais, só pode ser lido pelo root.
Se tentarmos usar o comando wc para ler as linhas, palavras e caracteres no arquivo shadow, nossa permissão será negada.
wc / etc / shadow

Se estivermos na lista de sudoers e usarmos o mesmo comando com sudo no início da linha, nossa senha será solicitada e o comando será executado para nós. Se você for o único usuário do seu computador Linux, será adicionado automaticamente à lista de sudoers quando o sistema for instalado.
sudo wc / etc / shadow

Como estamos executando o comando como root, o comando wc é executado. Ninguém nega o root.
Publicidade
O comando sudo costumava significar “ superusuário faz. ” Ele foi aprimorado para permitir que você execute um comando como qualquer usuário, por isso foi renomeado para “ substitute user do. ” O comando é realmente executado como se o outro usuário o tivesse executado. Se você não especificar um nome de usuário, o padrão do sudo é o uso de root. Se desejar usar um usuário diferente, use a opção -u (usuário).
Podemos ver que os comandos são executados como outro usuário usando o comando whoami.
whoami
sudo whoami
sudo -u mary whoami

RELACIONADO: Como determinar a conta de usuário atual no Linux
Executando como root sem usar su
O problema com o sudo é que você precisa usar o “ sudo ” no início de cada comando. Se você está apenas digitando um ou dois comandos, isso não é grande coisa. Se você tem uma sequência mais longa de comandos para executar, pode se tornar cansativo. Pode ser cansativo, mas age como uma trava de segurança útil para os poderes do root, e você deve conscientemente tirar a segurança toda vez.
Há uma maneira de efetivamente “ fazer login ” como root que não usa su e não exige que o usuário root tenha uma senha.
Aviso: tenha cuidado ao usar este método. Cada comando que você emitir será executado com alegria, sem perguntas — mesmo que seja destrutivo.
Usar sudo para executar um shell Bash abre um novo shell com o usuário root.
sudo bash

Observe que o prompt de comando muda. O caractere final do prompt agora é um hash “ # ” em vez de um cifrão “ $. ”
Publicidade
A forma como o corpo do prompt de comando é exibido varia de distribuição para distribuição. No Ubuntu, somos informados de que o usuário é root e mostrado o nome do computador e o diretório de trabalho atual. A cor do prompt também foi alterada.
Como somos root, podemos executar comandos que normalmente exigiriam o uso de sudo.
wc / etc / shadow

Para sair do shell do usuário root, pressione “ Ctrl + D ” ou digite “ sair ” e pressione “ Enter. ”
sair

Menos Superman, Mais Clark Kent
Se você estiver na lista de sudoers, significa que tem super poderes sobre o seu sistema Linux. Lembre-se de que o Superman passa mais tempo como seu alter ego moderado do que com sua capa vermelha.
Use sua conta de usuário regular o máximo possível. Apenas mude para root quando você realmente precisar.
Nenhum comentário