$cat /etc/passwd |grep -i root
root:x:0:0:root:/root:/bin/bash
$sudo cat /etc/shadow |grep -i root
root:!:17179:0:99999:7:::
En el segundo campo del archivo sombra, !significa que el usuario raíz no puede iniciar sesión, pero ¿por qué puedo iniciar sesión en el usuario raíz sudo su?
¿Por qué no puedo iniciar sesión en el usuario root por su rooto su -?
permissions
sudo
passwd
shadow
Sinoosh
fuente
fuente

Respuestas:
Un campo de contraseña encriptada
!en lashadowentrada significa que ninguna contraseña puede autenticarse contra ella. Deman shadow:Como dice el manual, esto no significa que no pueda iniciar sesión como root. Simplemente significa que no puede iniciar sesión como root utilizando una contraseña para la cuenta root. (Puede iniciar sesión como root a través de SSH utilizando claves SSH, por ejemplo, si lo configuró anteriormente, incluso si la cuenta está bloqueada).
sudonormalmente se autentica con su contraseña, no con la raíz. Esto se puede cambiar configurando uno detargetpw,rootpworunaspwensudoers. Si configura una de estas opciones e intenta usar una contraseña cuando la contraseña está bloqueada, eso fallará .fuente
Ahora veamos los comandos en consecuencia:
sudo su:sudoejecuta el comandosu(usuario sustituto) con privilegios de root, por lo que incluso si/etc/shadowdice o tieneroot:!:17179:0:99999:7:::, seguirá ejecutando comandos con privilegios de root.su -osu root:/etc/shadowarchivo no puede iniciar sesión, por lo que usar estos comandos no funcionará. Si desea que funcionen, entonces la cuenta raíz debe desbloquearse dándole una contraseña.Resumen:
su -0rsu rootcambia a root de usuario , no existe, por lo que no puede suceder, perosudo suejecuta el comando switch conrootprivilegios, por lo que en este caso desaparecerá si está en elsudogrupo. En este caso, no estás iniciando sesión como root, solo actúas como root para que funcione .Fuente: ¿Cuál es la diferencia entre 'su -' y 'su root'?
fuente
sudo suque no ve los campos de paso en el archivo de sombra?sudo sues la forma incorrecta de corrersudo shosudo bash.