O que está acontecendo?
Para alterar os usuários (comutadores) usando o comando su
, você deve fornecer a senha do usuário de destino. É assim que funciona. No entanto, com sudo
você pode usar sua própria senha.
Por exemplo, se você usar o comando su -
para alternar para o usuário root
, será necessário usar a senha do root, que por padrão não possui nenhuma senha e também sua conta está desabilitada.
Qual é o diferente?
Portanto, com su
estamos dando uma senha única para todos os usuários que precisam alternar para o usuário de destino, o que sudo
faz é superar esse problema.
Nós configuramos um arquivo chamado sudoers
e dentro dele definiremos quem pode fazer o quê, então todo mundo usando sudo
e sua própria senha podem provar que é realmente ele e executar alguns comandos específicos.
O que posso fazer?
Você pode usar: sudo -i
para alternar para root com seu shell padrão como um shell de login ou para um shell sem login sudo -s
ou até mesmo para a velha escola sudo su -
(login shell novamente).
Informações extras
Você também pode usar sudo -l
para ver quais privilégios você tem, por exemplo, você tem o direito de mudar para root ou user bob ou executar um comando específico usando john em uma máquina específica?
Para esclarecer sobre conta raiz:
em uma máquina Ubuntu, por padrão, a conta root não possui nenhuma senha e, ao mesmo tempo, a conta é desabilitada. Quando você desativa uma conta, um ponto de exclamação "!" Será adicionado na frente do seu hash de senha, para que ninguém possa fazer login nessa conta, seja qual for a senha ou não.
$ sudo grep root /etc/shadow
root:!:2020:0:99999:2:::
O que significa que root não tem nenhuma senha (a segunda seção está vazia, ela contém apenas um ponto de exclamação) e ao mesmo tempo está desativada: preste atenção em !
.