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? Opa, também entendi.
Índice
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 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, 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 de onde vem o nome “root” 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, trabalharam anteriormente 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 a partir 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 da Multics também?
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 o diretório raiz. Mas não há menção de uma conta de usuário root ou 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 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 usuário root.
Claro, este é o Linux, então você pode configurá-lo para permitir que o usuário root efetue login. Mas quanto menos tempo você passar logado como root
, melhor. Além de se proteger de 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 o login como root
, o que limita os danos que eles podem causar.
Mas se o login como root
estiver desabilitado, como você administra seu computador Linux? Bem, é para isso que sudo
serve o comando. Não requer que o usuário root efetue login. Ele temporariamente concede root
poderes 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 sudo
comando. O sudo
comando apenas concede root
poderes a você se você for considerado digno e adicionado à lista de sudoers.
Existe outro comando semelhante a sudo
chamado su
. Com sudo
, você 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 para o usuário root usar 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 o login como root
.
Em segundo lugar, se você definir uma senha de root, todos que usarão o su
comando 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 sudo
e permitir que cada pessoa com privilégios use suas senhas individuais para autenticação.
Usando sudo
O arquivo “/ etc / shadow” 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 expirou. Como contém informações confidenciais, elas só podem ser lidas por root
.
Se tentarmos usar o wc
comando 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, será solicitada nossa senha e o comando será executado para nós. Se você for o único usuário em 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 wc
comando é executado. Ninguém nega o root.
O sudo
comando costumava significar “fazer superusuário”. Ele foi aprimorado para permitir que você execute um comando como qualquer usuário, por isso foi renomeado como “usuário substituto 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 sudo
padrão é usar root
. Se você deseja usar um usuário diferente, use a -u
opção (usuário).
Podemos ver que os comandos são executados como outro usuário usando o whoami
comando.
Quem sou eu
Sudo Whoami
sudo -u mary whoami
Executando como root sem usar su
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ê tem uma sequência mais longa de comandos para executar, pode se tornar cansativo. Pode ser cansativo, mas atua como uma trava de segurança útil para root
os poderes de, e você tem que tirar a segurança conscientemente a cada vez.
Existe uma maneira de “logar” efetivamente, já 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 root
o usuário.
sudo bash
Observe que o prompt de comando muda. O caractere final do prompt agora é um hash “#” em vez de um caractere de dólar “$”.
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”.
saída
Menos Superman, Mais Clark Kent
Se você estiver na lista de sudoers, terá superpoderes sobre o sistema Linux. Lembre-se de que Superman passa mais tempo como seu alter ego de boas maneiras do que com sua capa vermelha.
Use sua conta de usuário regular tanto quanto possível. Só mude para root
quando você realmente precisar.