root
. Para manter esta resposta abaixo do limite de caracteres (e no tópico), sugiro que você leia esta página seguido por este . Realmente, tudo que você precisa saber é o seguinte:
O Linux é um sistema operacional multiusuário, com cada usuário tendo poder e escopo limitados, conforme definido por seu grupo de usuários. Todo sistema Linux tem algo chamado root
user (UID 0, também conhecido como superusuário), que é o administrador total e completamente autoritativo. root
sabe tudo, root
vê tudo, root
controla tudo.
O conceito de sudo
veio do comando UNIX antigo su
(de s bruxa u ser), que permitia a qualquer usuário efetuar login em qualquer outra usuário no sistema. Qualquer pessoa com privilégios administrativos digitaria su root
(ou apenas su
) para escalar para o usuário raiz em qualquer tarefa administrativa. Isso, lamentavelmente, teve alguns problemas. Em sistemas com vários administradores, todos compartilhavam a senha raiz. Ou seja, se um administrador deixasse a empresa, a senha do root precisaria ser alterada e redistribuída para todos os outros administradores. Isso pode ser extremamente demorado, às vezes, e de outra forma, ser apenas uma grande dor.
Agora, insira sudo
. sudo
funciona em um princípio diferente. Em vez de exigir que os usuários saibam o login da conta raiz, sudo
seria usado para permitir que os usuários escalem a si mesmos na conta root
(ou qualquer outra conta, para essa matéria) com base nas regras do arquivo /etc/sudoers
. Agora, revogar ou adicionar um administrador é simples - basta adicionar ou remover um usuário de um grupo ou do arquivo. Por causa disso, a conta raiz pode ser "desativada", bloqueando o acesso a qualquer pessoa, exceto os administradores reais.
Para quase todos os casos, isso é tudo em que sudo
é usado. Concede root
power aos administradores (membros do grupo admin
ou sudo
) com base nas regras definidas em /etc/sudoers
.
(Des) intencionalmente, isso também vem com um enorme benefício de segurança. Os administradores podem executar em um modo não privilegiado como qualquer outro usuário. Eles podem, então, escalonar ou "habilitar" privilégios administrativos quando forem necessários, e revogá-los imediatamente depois. Normalmente, isso é usado apenas para um único comando (por exemplo, sudo apt install cowsay
), mas também pode ser um shell raiz completo.
Esse isolamento também protege o sistema como um todo (lembre-se, o * NIX era originalmente um ambiente multiusuário usado por muitas pessoas) de código malicioso executado a partir de uma conta de administrador, seja através de malware ou alguém fazendo logon terminal ativo. Da mesma forma, sudo
permite que todas as ações do administrador sejam registradas e revisadas a qualquer momento. Compare isso com o antigo método su
, em que você, realisticamente, não tinha ideia de quem executava o comando.
Além disso, com base no modelo de permissão do Linux, sudo
pode impedir que um usuário cometer erros potencialmente perigosos como acidentalmente desinstalando um programa crítico, apagando um disco rígido ou qualquer outro número de coisas desagradáveis que nunca devem ser feitas sem alguma confirmação.
TL; DR:
Realmente, sudo
é apenas um remanescente (muito útil) dos verdadeiros ambientes multiusuário de antigas instalações * NIX. No entanto, ainda mantém a sua utilidade, protegendo o sistema de malware ou seqüestro de sessão. Na típica mentalidade * NIX, a proteção da conta real do administrador é um exercício deixado para o administrador.
Se você estiver preocupado com alguém sentado em seu computador enquanto estiver fora e mexendo com sua privacidade, basta bloquear sua tela / sessão. Mesmo assim, o acesso físico é um assassino .