Chaque utilisateur a au moins une fois oublié les mots de passe de sites web, de réseaux sociaux qu'il n'a pas utilisés depuis longtemps. Une situation similaire peut se produire avec une distribution Linux. Il n'est pas difficile de l'oublier, surtout s'il existe de nombreuses distributions différentes avec des mots de passe différents. Voyons maintenant ce qu'il faut faire si votre mot de passe Linux a été oublié, comment le réinitialiser correctement sans effacer vos données. La réinitialisation d'un mot de passe Linux n'est pas une tâche très difficile. Mais il convient de préciser que vous ne pouvez pas retrouver votre mot de passe, vous ne pouvez que le réinitialiser.
Pour réinitialiser le mot de passe, vous devez vous armer d'un disque LiveCD avec n'importe quelle distribution Linux, il est seulement important de faire correspondre la capacité en bits du système à récupérer et le système sur le disque. Il est préférable de prendre les dernières versions des distributions. Elles sont plus pratiques à utiliser, bien que Gentoo et ArchLinux fassent également l'affaire.
Ensuite, démarrez à partir du disque LiveCD et ouvrez le terminal. Si le disque démarre dans un shell de commande sans interface graphique, ce n'est pas grave. Vous devez savoir sur quel disque dur se trouve le système de fichiers racine de la distribution que vous allez installer. Vous pouvez afficher tous les disques disponibles à l'aide de la commande :
$ fdisk -l
En règle générale, le nom du disque commence par les lettres sd pour les disques ordinaires et nvme pour les disques SSD M.2. La partition racine est petite si une partition séparée a été allouée au dossier personnel lors de l'installation et si elle dispose d'un système de fichiers Linux. Si aucune partition distincte n'a été créée pour le chargeur de démarrage, la partition racine sera également marquée d'un astérisque comme étant amorçable. Par exemple, il s'agit de /dev/nvme0n1p1
. Elle doit être montée sur /mnt
:
$ mount /dev/nvme0n1p1 /mnt/
Nous voyons donc /dev/nvme0n1p1 - la partition sur laquelle le système a été installé. Il pourrait tout aussi bien s'agir de /dev/sda1
ou /dev/sdb5
. Entrez ensuite dans l'environnement chroot :
$ chroot /mnt /bin/bash
Nous nous trouvons maintenant dans l'environnement de la distribution installée sur le disque monté. Il s'agit d'une variante du mode de récupération sans démarrage du système d'exploitation.
Ensuite, l'utilisateur peut définir le mot de passe de l'utilisateur linux root à l'aide de la commande passwd
:
$ passwd root
Il se peut que l'utilitaire donne une erreur, mais s'il n'en donne pas, le mot de passe a été mis à jour avec succès et vous pouvez utiliser votre système.
Il existe une autre solution. Les mots de passe de tous les utilisateurs sont stockés dans le fichier /etc/shadow
comme suit :
user_name:encrypted password:user_id:group id_id
Par exemple :
root:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:0:0:::::
bin:!!:9797:0:::::
daemon:!!:9797:0:::::
Pour chaque entrée, tous les paramètres sont séparés par des deux-points, le premier paramètre (root) est le nom d'utilisateur, le deuxième paramètre (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...) est le hachage du mot de passe. Pour changer le mot de passe en celui désiré, vous devez d'abord créer manuellement son hachage. Pour ce faire, vous pouvez utiliser cette commande :
$ openssl passwd -1 -salt xyz new_password
Puis le coller à la place du précédent :
$ vi /etc/passwd
Il n'est pas possible de supprimer complètement le mot de passe Linux, sans lequel vous ne pourrez pas vous autoriser à entrer dans le système ; la meilleure solution consiste donc à le remplacer par un nouveau. Le mieux est donc de le remplacer par un nouveau. Après l'avoir remplacé, enregistrez les modifications et c'est terminé. Avant de redémarrer, n'oubliez pas de quitter chroot et de démonter la racine du système :
$ exit
$ umount /mnt
Si vous n'avez pas de disque à portée de main, vous pouvez utiliser Grub à cette fin. Dans le menu des options de démarrage, appuyez sur E pour éditer les paramètres du noyau :
Ici, dans la ligne vmlinuz, après tous les paramètres (voir capture d'écran), vous devez ajouter le paramètre init=/bin/bash
:
Appuyez sur Ctrl+D
pour continuer à démarrer. Une fois l'initialisation terminée, le noyau passera le contrôle à la commande shell bash que nous avons passée dans les paramètres du noyau et dans laquelle vous pouvez récupérer le mot de passe. Par défaut, le système de fichiers est monté en mode lecture seule, pour pouvoir modifier quoi que ce soit, vous devez le remonter en écriture :
$ exit
$ umount /mnt
Toutes les autres actions avec le fichier /etc/shadow
sont similaires au premier point.