Réinitialiser un mot de passe perdu sur un système Linux
Dans cet article, nous allons voir 2 méthodes pour réinitialiser un mot de passe perdu sur un système Linux. La première méthode utilise GRUB, et la seconde méthode utilise un Live CD/USB.
Disclaimer
Cette méthode fonctionne sur un Linux utilisant systemd
ou OpenRC
. De plus, si votre disque dur est chiffré, ou que GRUB est protégé par un mot de passe, il vous faudra d'abord le déchiffrer et/ou déverrouiller GRUB.
Méthode 1 : Réinitialiser le mot de passe en utilisant GRUB
1. Accès à un shell
Dans un premier temps, nous allons éditer les paramètres de démarrage de GRUB pour pouvoir accéder à un shell sur la machine.
Lorsque vous démarrez votre machine, vous devriez voir l'écran de GRUB.
Attention
Il est possible que l'écran de GRUB ne s'affiche pas par défaut ou si votre système démarre trop rapidement.
Dans ce cas, vous pouvez maintenir la touche Shift
ou Esc
juste après le démarrage pour afficher le menu de GRUB.
Appuyez sur la touche e
pour éditer les paramètres de démarrage.
Recherchez la ligne qui commence par linux
, voici un exemple :
linux /boot/vmlinuz-6.8.0-51 root=UUID=XXXX ro quiet splash
Ajoutez init=/bin/bash
à la fin de cette ligne, ce qui devrait ressembler à ceci :
linux /boot/vmlinuz-6.8.0-51 root=UUID=XXXX ro quiet splash init=/bin/bash
Ensuite, appuyez sur Ctrl + X
ou F10
pour démarrer avec ces nouveaux paramètres.
Vous devriez maintenant être dans un shell ressemblant à ceci :
root@(none):/#
2. Remonter le système de fichiers en écriture
Par défaut, le système de fichiers est monté en lecture seule. Pour pouvoir modifier le mot de passe, nous devons le remonter en écriture. Exécutez la commande suivante :
$ mount -o remount,rw /
Vous pouvez vérifier que le système de fichiers est monté en écriture en exécutant :
$ mount
Vous devriez voir une ligne similaire à celle-ci :
/dev/sda1 on / type ext4 (rw,relatime)
3. Réinitialiser le mot de passe
Maintenant que le système de fichiers est monté en écriture, vous pouvez réinitialiser le mot de passe de n'importe quel utilisateur (également root). Par exemple, pour réinitialiser le mot de passe de l'utilisateur user
, exécutez :
$ passwd user
On peut maintenant continuer le démarrage du système, avec notre nouveau mot de passe en exécutant :
$ exec /sbin/init
Méthode 2 : Réinitialiser le mot de passe avec un Live CD/USB
Pour le bon fonctionnement de cette méthode, il vous faudra une clé usb avec un Live CD/USB pour pouvoir démarrer dessus et modifier la partition de votre système.
1. Identifier et monter la partition racine
Une fois que vous avez démarré sur votre Live CD/USB, ouvrez un terminal et listez les partitions avec :
$ lsblk
Repérez la partition racine de votre système (Par exemple /dev/sda2
ou /dev/sda3
). Montez-la dans un dossier temporaire :
$ mkdir /mnt/mapartition
$ mount /dev/sda3 /mnt/mapartition
/dev/sda3
par la partition de votre système.
On peut vérifier que la partition est bien montée en regardant le contenu du dossier monté :
$ ls /mnt/mapartition
Vous devriez voir les fichiers de votre système, comme etc
, home
, etc.
2. Chroot
Pour accéder à votre système comme si vous étiez dessus, entrez dans un chroot sur la partition montée :
$ chroot /mnt/mapartition
3. Réinitialisation le mot de passe
Dans le chroot, réinitialisez le mot de passe de l’utilisateur souhaité (par exemple user
ou un autre utilisateur) :
$ passwd user
4. Démonter la partition et redémarrer
Sortez du chroot et démontez la partition :
$ exit
$ umount /mnt/mapartition
Redémarrez votre ordinateur, retirez la clé USB et démarrez sur votre système. Vous devriez maintenant pouvoir vous connecter avec le nouveau mot de passe.