Quoi de plus rageant que de taper un mot de passe sous Linux et de se prendre en retour un « échec de l’authentification », « login incorrect » ou (mon préféré) « désolé l’authentification par mot de passe n’a pas fonctionné » (alors oui sous Windows aussi c’est énervant mais là on va parler uniquement Linux 😊)

Heureusement pour nous, réinitialiser un mot de passe perdu ou oublié quand on se retrouve bloqué à la fenêtre de connexion est possible, petite astuce du jour sur le sujet !


Modifier un mot de passe perdu sous Linux via le grub

Pour commencer, j’aimerai expliquer brièvement ce qu’est le grub, par lequel on va passer pour faire la réinitialisation des mots de passe.

Pour faire simple, le grub (Grand Unified Bootloader) est un programme d’amorçage (de boot) utilisé sur les systèmes Linux qui permet justement de démarrer sur le système que l’on souhaite. C’est ce logiciel (libre) qui s’exécute entre le moment où l’on démarre une machine et où on accède au système d’exploitation, c’est une sorte « d’entre 2 ». Il stocke – entres autres – les informations et paramètres importants qui permettent à un OS de démarrer.

Vous pouvez peut-être le voir passer à peine quelques secondes lors du démarrage d’une machine sous Linux. Si ce n’est pas le cas, le plus souvent il suffit de rester appuyé sur la touche Shift de votre clavier pendant le démarrage (située sous la touche cadenas/caps lock pour activer les majuscules permanentes). Retenez bien cette astuce, vous pourrez en avoir besoin pour la suite !

Trois cas différents selon abordés ici. Ils ont été sélectionnés purement arbitrairement tout simplement parce que j’en ai moi-même eu besoin plus d’une fois 😊. Cliquez ci-dessous pour accéder directement à la partie qui vous concerne.

Accès rapide aux différentes parties de cet article : 

    1. Réinitialisation MDP du compte root sous Debian 12 sans interface graphique
    2. Réinitialisation MDP d’un compte local sous Ubuntu Desktop 22
    3. Réinitialisation MDP d’un compte local sous CentOS 9 avec SELinux actif

 

1. Réinitialisation MDP du compte root sous Debian 12 sans interface graphique

Voici une vue du Grub lorsque l’on démarre une machine Debian :

Lors du démarrage, à l’affichage de ce fameux grub, appuyez très rapidement sur la touche « e » du clavier pour arriver sur cet écran :

A l’aide des touches fléchées de votre clavier, descendez et recherchez la ligne commençant par « linux ».

Toujours avec les touches fléchées du clavier, allez à la fin de la ligne commençant par linux » et placez vous derrière le mot « quiet ».

Dernière le mot « quiet », faites un espace et ajoutez ceci « rw init=/bin/bash » (attention : le clavier peut être en qwerty).

Une fois fait, nous pouvons quitter ce menu en enregistrant bien sur les modifications effectuées. Pour cela, appuyez simultanément sur les touches Ctrl et X du clavier, la machine va redémarrer automatiquement.

Sur l’écran qui va s’afficher au redémarrage, nous serons directement connectés en root, prêt pour saisir des lignes de commandes.

Il est maintenant possible de changer le mot de passe du compte root en tapant la commande « passwd » suivi du nouveau mot de passe que l’on veut lui attribuer et en appuyant sur Entrée pour valider l’envoi d’une commande. Attention, le clavier risque d’être toujours en qwerty et vous ne verrez pas le MDP saisi ! Je vous conseille de mettre un mdp simple où les touches sont communes entre un qwerty et un azerty, vous le remplacerez par la suite par un MDP fort quand vous aurez récupéré l’accès normal à la session.

Si c’est pour un autre utilisateur que root, il faut saisir son login dans la commande (exemple : passwd nom_user).

Une fois le MDP modifié, vous pouvez quitter ce mode en saisissant la commande suivante (attention, clavier toujours en qwerty) : exec /sbin/init

Vous arriverez directement à la fenêtre de connexion de Debian telle que vous la connaissez.

Vous pouvez maintenant vous loguer normalement avec le compte root et son MDP passe que l’on vient de modifier

Une fois connecté, vous pouvez une nouvelle fois changer le MDP en saisissant de nouveau la commande « passwd ».

C’est tout pour cette partie smile.

 

2. Réinitialisation MDP d’un compte local sous Ubuntu Desktop 22

Voici une vue du Grub lorsque l’on démarre une machine Ubuntu Desktop :

Si vous n’avez pas le temps de voir l’écran du grub, restez appuyé sur la touche shift (maj) du clavier jusqu’à son affichage lors du démarrage de la machine, avant l’affichage du logo Ubuntu (si vous voyez le logo Ubuntu, il est déjà trop tard et vous devez redémarrer la machine).

Quand vous voyez bien l’écran du grub, descendez sur « Advanced options for Ubuntu » à l’aide des touches fléchées du clavier et appuyez sur Entrée.

 A l’écran suivant, descendez sur la première ligne se terminant par « recovery mode » et appuyez sur la touche Entrée.

Patientez le temps du chargement du menu de récupération.

Lorsque le menu de récupération est affiché, descendez sur la ligne « root » et appuyez sur Entrée.

Du texte s’affichera en dessous du menu. Appuyez sur Entée pour rentrer en mode maintenance.

Nous serons ensuite directement connectés en root, prêt à saisir des commandes.

Il est maintenant possible de changer le mot de passe d’un compte en tapant la commande « passwd nom_user » suivi du nouveau mot de passe que l’on veut lui attribuer.

Un message peut avertir que le mot de passe est trop faible mais il n’empêche pas la modification. Privilégiez tout de même des mots de passe robustes bien évidemment.

Si vous ne connaissez pas le login précis de l’utilisateur concerné par ce changement de MDP, tapez « cat /etc/passwd » pour afficher la liste des utilisateurs sur la machine. En général, l’utilisateur recherché aura un dossier « /home » affecté, son identifiant précis (login) est le nom qui apparait au début de la ligne le concernant. Evitez de toucher les autres utilisateurs qui sont liés aux services ou au système lui-même.

Une fois terminée, vous pouvez quitter le mode maintenance avec la commande « reboot ».

Vous pouvez maintenant vous loguer normalement avec le compte et le mot de passe que l’on vient de modifier.

Vous arriverez sur l’environnement de travail habituel de l’utilisateur.

C’est tout pour cette partie smile.

 

3. Réinitialisation MDP d’un compte local sous CentOS 9 avec SELinux actif

Voici une vue du Grub lorsque l’on démarre une machine sous CentOS :

Lors du démarrage, à l’affichage du grub (image précédente), appuyez très rapidement sur la touche « e » du clavier pour arriver sur cet écran.

A l’aide des touches fléchées du clavier, descendez et recherchez la ligne commençant par « linux ».

Toujours avec les touches fléchées du clavier, déplacez vous à la fin de la ligne commençant par « linux », derrière le mot « quiet ».

Supprimez les paramètres « rhgb » et « quiet » et ajoutez à la place les paramètres suivants : break enforcing=0

Attention : le clavier peut être en qwerty. Le caractère derrière le = est un zéro.

Vous aurez une vue ressemblant à ceci :

Info + : Le paramètre « enforcing=0 » va passer SELinux en mode permissif, c’est-à-dire qu’il alertera mais ne bloquera pas. Il faudra le repasser en mode forcé à la fin de l’opération.

Une fois les modifications effectuées, vous pouvez quitter ce menu en enregistrant les modifications en appuyant simultanément sur les touches Ctrl et X du clavier, la machine va redémarrer automatiquement.

Un prompt commençant par « switch_root » va apparaître et nous pourrons saisir des commandes.

A cette étape, le système de fichier est en lecture seule, nous ne pouvons pas encore modifier un mot de passe. Passez l’accès en écriture et changez le répertoire racine avec les 2 commandes suivantes :

mount -o remount,rw /sysroot
chroot /sysroot

Le prompt changera et commencera par « sh- ».

Il est maintenant possible de changer le mot de passe d’un compte utilisateur (root ou autre) en tapant la commande « passwd nom-user » (remplacez « nom-user » par le login de votre propre utilisateur). Si la réinitialisation concerne directement le compte « root », écrivez juste la commande « passwd », suivi du nouveau mot de passe que l’on veut lui attribuer.

Un message peut avertir que le mot de passe est trop faible mais il n’empêche pas la modification. Privilégiez tout de même des mots de passe robustes bien évidemment. Quittez ce mode avec la commande « exit » pour revenir au prompt commençant par « switch_root ».

Saisissez une seconde fois la commande « exit » pour quitter définitivement ce mode et revenir à la fenêtre de connexion d’un utilisateur.

vous pouvez désormais vous loguer normalement avec le compte et le mot de passe que l’on vient de modifier.

Vous arriverez sur votre environnement de travail habituel.

Comme nous avons passé SELinux en mode passif, il faut encore effectuer 2 petites manipulations pour tout remettre propre. Depuis la session d’un utilisateur, ouvrez un terminal.

Il faut remettre le fichier /etc/shadow dans le contexte de sécurité se SELinux avec la commande suivante :

sudo restorecon /etc/shadow

Info + : Si vous êtes connecté directement en root, vous n’avez pas besoin d’utiliser « sudo ».

Et enfin nous allons repasser SELinux en mode forcé avec cette commande :

setenforce 1

Si on vérifie avec la commande « sestatus » ou « getenforce », nous verrons que SELinux a bien été remis en mode forcé.

Et voilà tout est remis en place, c’est tout pour cette partie smile.

 

Ce tips est maintenant terminé, en espérant qu’il vous soit utile si vous en avez besoin un jour.

A la prochaine good


[Tips] Réinitialiser un mot de passe sur un OS Linux via le Grub

Articles pouvant vous intéresser