Trucs:En cas de perte d'un mot de passe

De Lea Linux
Aller à la navigation Aller à la recherche
Jonesy<jonesy_at_wanadoo_dot_fr>

Il peut vous arriver de perdre d'une façon ou d'une autre le mot de passe (password) d'un de vos utilisateurs (user).

Si cet utilisateur n'est pas l'utilisateur root
C'est le cas le plus simple. Il vous suffit de vous loguer en root et vous affectez directement un nouveau mot de passe idiot à l'utilisateur en faisant :
passwd toto
Puis là, l'utilisateur 'toto' pourra rechanger son mot de passe comme il l'entend.

Si cet utilisateur est le root ( aie ! Ca fait mal... :-) )
Dans ce cas, cela se complique un peu. Ce que je propose impose d'avoir un accès physique à la machine, si ce n'est pas le cas je ne sais pas comment faire.

Vous pouvez vous en sortir si :

  • Vous avez un autre système d'exploitation sur votre machine capable de lire et écrire sur la partition /
    Cet autre système d'exploitation peut etre un autre GNU/Linux, un BSD Libre (NetBSD, FreeBSD, OpenBSD, ...) ou un MS Windows avec les outils nécessaires et si votre partition / est en EXT2.
  • Vous avez une mini-distribution ou une distribution sur CDROM
    Une mini distribution genre : Tom's RtBt (voir cet article)
    Une distribution sur CDROM genre : DemoLinux.
  • Votre distribution fournit sur l'un de ses CDROMs un mode 'rescue' (secours)
    Pour accéder au mode 'rescue' sur le CDROM d'installation de la Mandrake, par exemple, il suffit d'appuyer sur la touche 'F1', au lieu de 'entrée', à la première invite puis de taper 'rescue' et de valider. A la fin du processus d'initialisation vous vous retrouverez avec une invite de commande, comme sous un terminal ou lorsque vous bootez en mode non graphique.

La procédure à suivre

Pour l'explication, je pars du principe que votre partition / est sur le disque dur maitre de la nappe IDE 1 sur la deuxième partition principale, soit /dev/hda2. De plus, je suppose aussi que vous utilisez un autre système GNU/Linux pour réparer. Ceci pour faciliter l'explication et pour qu'elle reste claire.
A vous d'adapter la suite en fonction de votre cas particulier... Mais l'idée générale est là.
Pour finir avec les conventions, les commandes dans VI sont des séries de lettres à taper à la suite sans appuyer sur la touche 'entrée' entre les lettres et sans les espaces, qui ne sont là que pour regrouper les commandes logiquement.

La première chose à faire est de rebooter sur le système (autre GNU/Linux, DemoLinux, CD de rescue, ...) vous permettant ainsi de lire et d'écrire sur votre partition /.

Une fois que vous êtes sous une invite de commande...

Il vous sera peut être nécessaire de configurer votre clavier en francais, pour cela faites :
/usr/bin/loadkeys fr-latin1.map

Après, il vous faut monter votre partition / avec les commandes suivantes :
mkdir -p /mnt/mysys
mount /dev/hda2 /mnt/mysys

Si votre partition a un système de fichiers particulier, ou que la commande mount ne marche pas, alors utilisez l'option -t <type> afin de spécifier votre système de fichiers. Si cela ne marche toujours pas, cela signifie que le noyau du système que vous utilisez pour réparer n'a pas le support de votre système de fichiers.
Note : A l'heure actuelle c'est souvent EXT3.

Maintenant que la partition est montée, nous allons modifier le fichier /etc/passwd afin de supprimer le mot de passe root en enlevant l'étoile :

cd /mnt/mysys/etc
vi passwd
#---- Dans VI ----
#----
Sur la ligne : root:x:0:0:,,,:/root:/bin/ksh
2w x :wq<la touche entrée>
#---- Hors VI ----
cd /
umount /mnt/mysys

Remarque : Nous utilisons ici l'éditeur 'vi', car c'est le seul éditeur de texte que nous sommes sûr de trouver quelque soit le système utilisé, sauf MS Windows :-). De plus généralement, l'utilisateur root est la première ligne du fichier /etc/passwd.

>Enfin, il ne vous reste plus qu'à rebooter sur votre système "malade".
Une fois connecté à votre système avec un utilisateur normal, faites :

su - root
#
Normalement aucun mot de passe ne vous sera demandé.
cd /etc
vi passwd
#---- Dans VI ----
#----
Sur la ligne : root::0:0:,,,:/root:/bin/ksh
w ax<la touche escape> :wq<la touche entrée>
#---- Hors VI ----
passwd

Une fois ici, il va vous demander le nouveau mot de passe du root. Une fois le mot de passe défini, ça y est, vous avez fini ! Le système est réparé, vous pouvez vous déconnecter et reconnecter en root sans problème. Ouff ! :-)