$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:::
Dans le deuxième champ du fichier reflet, !
signifie que l'utilisateur root ne peut pas se connecter mais pourquoi puis-je me connecter à l'utilisateur root par Sudo su
?
Pourquoi ne puis-je pas me connecter à l'utilisateur root par su root
ou su -
?
Un _!
_ dans le champ de mot de passe crypté de l'entrée shadow
signifie qu'aucun mot de passe ne peut s'authentifier. De man shadow
:
_If the password field contains some string that is not a valid
result of crypt(3), for instance ! or *, the user will not be able
to use a unix password to log in (but the user may log in the
system by other means).
_
Comme le dit le manuel, ceci ne signifie pas que vous ne pouvez pas vous connecter en tant que root. Cela signifie simplement que vous ne pouvez pas vous connecter en tant que root en utilisant un mot de passe pour le compte root. (Vous pouvez vous connecter en tant que root via SSH à l'aide de clés SSH, par exemple, si vous l'aviez déjà configuré auparavant, même si le compte est verrouillé.)
Sudo
authentifie normalement avec votre mot de passe , pas le mot de passe root. Cela peut être changé en définissant l'une des options targetpw
, rootpw
ou runaspw
dans sudoers
. Si vous définissez l'une de ces options et essayez d'utiliser un mot de passe lorsque le mot de passe est verrouillé, cela échouera .
Maintenant, regardons les commandes en conséquence:
Sudo su
:
Sudo
exécute la commande su
(utilisateur suppléant) avec les privilèges root, donc même si /etc/shadow
dit ou a root:!:17179:0:99999:7:::
, il continuera d'exécuter des commandes avec des privilèges root.su -
ou su root
:
/etc/shadow
Le fichier _ ne peut pas se connecter alors utiliser ces commandes ne fonctionnera pas. Si vous voulez qu’ils fonctionnent, alors le compte root doit être déverrouillé avec un mot de passe.Sommaire:
su -
0r su root
passe à l'utilisateur root , il n'existe donc pas, cela ne peut pas arriver, mais Sudo su
exécute la commande de commutateur avec les privilèges root
, de sorte que dans ce cas, cela ira si vous êtes dans le groupe Sudo
. Vous ne vous connectez pas en tant que root dans ce cas, vous agissez simplement en tant que root pour que tout se passe bien.