Aïe: j’ai perdu mon mot de passe root…

Puisque cela peut arriver à tout le monde, il peut être interessant de savoir comment récupérer un mot de passe root. Attention, il ne s’agit nullement d’un précis de hacking: un accès physique à la machine est indispensable!

Les exemples ci-dessous sont tirés de la distribution RedHat ES3.

1 – Introduction

1.1 – Problématique

Il peut arriver, de diverses manières – comme l’oubli de l’utilisateur, une mauvaise manipulation lros du changement de mot de passe ou un crash système – de perdre un mot de passe. Dans la plupart de cas il suffira à compte root d’utiliser la commande passwd pour chager le mot de passe de l’utilisateur indélicat. Dans le cas où il s’agit d’un problème au niveau de mot de passe de l’utilisateur root, la manipulation devient subitement plus délicate…

1.2 – Gestion des mots de passe sous Linux

Traditionnellement, les comptes utilisateur GNU/Linux sont contenu par le fichier /etc/passwords tandis que les mot de passe sont dans /etc/shadow. Une modification directe de ces fichiers n’est pas une bonne idée car, d’une part, les mots de passe qui y sont contenus sont cryptés, et, d’autre part, certaine routine vérifient la cohérence de leur contenu.

2 – Marche à suivre

2.1 – Démarrer avec un outil de réparation

La meilleure façon de changer (on ne peut élas pas le récupérer de cette manière) le mot de passe root de maniére « propre » est alors de le faire à partir d’un démarrage en mode réparation, et d’utiliser le traditionnel outil passwd. Ceci nécessite un redémarrage de l’ordinauteur, il faut donc avoir un accés physique à la machine.

Le mode safe

La plupart de distributions propose en démarrage en « safe mode » si l’on démarre l’ordinateur à partir du premier CD d’installation de la distribution. Il suffit alors de taper « linux safe » au démarrage (cette option semble au moins valable pour Debian et RedHat).

Avec un LiveCD

Si votre distribution ne propose un tel mode de démarrage, vous pouvez toujours effectuer la manipulation suivante ne démarrant avec un LiveCD comme Knoppix par exemple.

2.2 – Changer le mot de passe

Une fois démarré, il suffit alors de changer la racine du système avec chroot

  • Sous RedHat, le systéme d’origine est monté dans /mnt/sysimage, il faut alors taper ceci:
    chroot /mnt/sysimage
  • Sous Knoppix, le systéme est moté dans sa partition d’origine comme, par exemple, /mnt/hda1:
    chroot /mnt/hda1

Une fois l’environnement modifié il ne reste plus qu’à utiliser la commande passwd:

sh-2.05b# passwd
Changing password for user root.
New password:
Retype new password:
passwd(pam_unix)[145]: password changer for root
passwd: all authentifiaction tokens updated sucessfully

Et voilà! Il ne reste plus qu’à redémarrer pour essayer le nouveau mot de passe.