Raspbian par défaut est configuré pour que le compte root ne puisse pas être connecté à l'aide d'un mot de passe. Cela se fait en commençant par une entrée dans /etc/password
laquelle commence:
root:x:0:0:
Les champs sont séparés par des deux-points et expliqués dans man 5 passwd
(notez le 5
, car man passwd
vous donnera la page de manuel de la commande passwd
; la section 5 est pour les fichiers de configuration, et dans ce cas ils ont le même nom). Ici, le premier est le nom ( root
), les troisième et quatrième sont les uid et gid numériques (les deux 0
), et le second est pour le mot de passe. Pour la plupart des entrées ce sera x
, en indiquant le mot de passe réel est dans un autre fichier, /etc/shadow
.
Notez que "le mot de passe réel" n'est vraiment stocké nulle part. Ce qui est stocké shadow
est un hachage unidirectionnel du mot de passe réel. Un hachage unidirectionnel est le résultat d'un processus qui produira toujours la même chose (permettant de vérifier votre mot de passe), mais est irréversible. En d'autres termes, si quelqu'un met la main sur shadow
, il n'y a aucun moyen de déduire le mot de passe du hachage. Cependant, s'ils peuvent modifier shadow
, ils peuvent évidemment désactiver ou changer ce qui fonctionnera comme mot de passe. Mais ils ne pourront jamais découvrir vos mots de passe. C'est pourquoi même root
ne peut pas faire cela (bien que root puisse toujours les changer en quelque chose d'autre sans avoir besoin de l'original).
Dans le cas de root, l'entrée dans shadow
commence comme ceci, comme pour la plupart des autres comptes système:
root:*:
Le *
indique qu'il n'y a actuellement aucun mot de passe possible qui pourrait être utilisé pour ce compte.
L'utilisateur root peut changer cela, cependant, en utilisant la passwd
commande pour définir un nouveau mot de passe, qui remplacera le *
avec le hachage mentionné précédemment (ceux - ci commencent toujours $n$
où n
est une valeur aléatoire qui est utilisée comme « sel » pour le hachage, mais vous n pas besoin de comprendre ça).
Quoi qu'il en soit, lorsque je configure une carte à partir d'une nouvelle image, la première chose que je fais est d'aller dans /etc/passwd
et de supprimer l' x
entrée de root donc commence maintenant:
root::0:0
Remarquez qu'il n'y a plus de deuxième champ. Cela signifie qu'il n'y a pas de mot de passe et tout ce que vous avez à faire est de taper root
à l'invite de connexion et vous êtes connecté en tant que root
. Vous pouvez ensuite utiliser passwd
pour en définir un.
Donc, vous avez deux choix ici, mais ils nécessitent tous deux de retirer la carte du pi et d'accéder à la deuxième partition à partir d'un autre système (qui peut lire / écrire des partitions ext4).
Restaurer sudoers
. Si vous avez une image de référence, c'est facile, vous pouvez simplement la remettre comme elle était en la remplaçant. Sinon, c'est l'option la plus compliquée car vous devez savoir ce que vous faites (et votre bilan avec sudoers
n'est pas si bon ...).
Modifiez /etc/passwd
et supprimez cela x
comme décrit ci-dessus, remettez la carte, connectez-vous en tant que root
, créez un mot de passe. Bien sûr, vous devrez toujours le réparer sudoers
, mais les essais et erreurs seront facilités car si vous l'êtes vraiment root
, vous pourrez toujours y accéder.
Si vous n'avez pas de système qui peut accéder aux systèmes de fichiers ext4 (un "live CD" Debian est un bon choix ici), alors vous êtes bloqué. Vous devrez reflasher la carte et recommencer.