O usuário root é a entidade mais poderosa no universo Linux com poderes ilimitados, para melhor ou para pior. Criar um usuário? Entendi. Aniquilar um sistema de arquivos? Opa, peguei isso também.
A história da origem de Root
O usuário root é o superusuário do Linux. Eles podem, literalmente, fazer qualquer coisa. Nada é restrito ou fora dos limites para root
. Se eles são um super-herói ou um supervilão depende do usuário humano que assume o manto do administrador do sistema. Erros cometidos pelo usuário root podem ser catastróficos, portanto, 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 de onde vem o nome “raiz” não se sabe ao certo. 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, já haviam trabalhado no Multics. O Multics tinha um sistema de arquivos que começava em um ponto chamado 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 também tenha adotado o usuário root do Multics?
A pesquisa 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 diretório raiz. Mas não há menção a uma conta de usuário root ou a um usuário chamado “root”.
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” foi usado no lugar de um nome oficial, mas o termo pegou 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 recebeu seu 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 comum no restante do tempo. Na verdade, a maioria das distribuições Linux modernas não permitem que você faça login como usuário root.
Claro, isso é Linux, então você pode configurá-lo para permitir que o usuário root faça login. Mas quanto menos tempo você gastar conectado como root
, melhor. Além de se proteger de desastres decorrentes de erros de digitação, se você não puder fazer login como root
, ninguém mais poderá. Qualquer pessoa que obtenha acesso não autorizado ao seu sistema não poderá fazer login como root
, limitando os danos que podem causar.
Mas se o login como root
estiver desabilitado, como você administra seu computador Linux? Bem, é sudo
para isso que serve o comando. Ele não exige que o usuário root faça login. Ele concede temporariamente os poderes do a você. É como pegar o martelo de Thor Mjolnir e receber temporariamente os poderes de Thor. Mas você só pode pegar o martelo se for digno. Da mesma forma, não é qualquer um que pode usar o comando sudo
. O comando sudo
só confere root
os poderes de ‘s a você se você for considerado digno e adicionado à lista de sudoers.
Há outro comando semelhante ao sudo
chamado su
. Com 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 root
não tiver uma senha, você não poderá fazer login como root
.
Em segundo lugar, se você definir uma senha de root, todos que usarão o su
comando precisarão saber a senha. E compartilhar senhas é um não-não de segurança, e para a senha de root, ainda mais. Qualquer uma das pessoas que conhece a senha do root pode dizer a outra pessoa. Se você precisar alterar a senha do root, precisará 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 sudo
e permitir que cada pessoa privilegiada use suas senhas individuais para autenticar.
Usando sudo
O arquivo “/etc/shadow” contém o nome de usuário de cada conta em seu computador Linux, juntamente 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, ele só pode ser lido por root
.
Se tentarmos usar o wc
comando para ler as linhas, palavras e caracteres no arquivo shadow, a permissão será negada.
wc /etc/shadow
Se estivermos na lista de sudoers e usarmos o mesmo comando 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 em seu computador Linux, será automaticamente adicionado à 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 raiz.
O comando sudo
costumava significar “superuser do”. Ele foi aprimorado para permitir que você execute um comando como qualquer usuário, então foi renomeado como “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, sudo
o padrão é usar root
. Se você deseja 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 whoami
comando.
whoami
sudo whoami
sudo -u mary whoami
Executando como root sem usar su no Linux
O problema sudo
é que você precisa usar “sudo” no início de cada comando. Se você está apenas digitando um ou dois comandos, isso não é grande coisa. Se você tiver uma sequência mais longa de comandos para executar, pode se tornar cansativo. Pode ser cansativo, mas funciona como uma trava de segurança útil para os poderes de root
, e você tem que conscientemente tirar a segurança toda vez.
Existe uma maneira de “fazer login” efetivamente, pois root
isso 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 satisfação, 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 é alterado. O caractere final do prompt agora é um hash “#” em vez de um caractere de dólar “$”.PROPAGANDA
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 é 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 “exit” e pressione “Enter”.
exit
Root: Menos Superman, mais Clark Kent
Se você está na lista de sudoers, você tem superpoderes sobre seu sistema Linux. Apenas lembre-se, Superman passa mais tempo como seu alter-ego educado do que em sua capa vermelha.
Use sua conta de usuário regular o máximo possível. Só mude para root
quando realmente precisar.
Leia também: Como instalar o Linux