Misfu, le site des cours Informatique/Bureautique/Mathematiques


 

Mot de passe root oublié ! Comment faire ?

Introduction


Contrairement à ce que l'on pense en général, il n'est pas aussi rare que ça d'oublier son mot de passe root sur son système Linux préféré.


Dans le présent mini-dossier, nous allons vous démontrer que tout n'est pas perdu lorsque vous vous trouver dans cette situation.


Dans certains cas, on peut démarrer dans le compte administrateur (root) sans connaître le mot de passe de root si on a accès au clavier du console. Nous supposerons aussi qu'il n'y a pas de mot de passe requis pour le BIOS ni pour le chargeur de démarrage comme lilo qui empêche de lancer le système.


Enfin il faut que le système soit configuré par défaut pour démarrer en mode console.


Principe


- Démarrer en mode Single ou en lançant le shell comme processus init, pour pouvoir pénétrer le système sans mot de passe ;

- Editer le fichier contenant ledit mot de passe et effacer la mention le concernant,

- ou exécuter la commande passwd et changer le mot de passe (mettre un mot de passe vide si possible);

- Enfin relancer normalement et se connecter en root (sans le mot de passe qui ne vous sera pas demandé).


Pratique


1) Relancer la machine et stopper sur le prompt 'Lilo boot :'

Sur certains systèmes, il faut appuyer sur la touche MAJ pour faire apparaître l'invite de lilo, 'boot :'

Sur d'autres systèmes configurés de manière à démarrer dans l'interface graphique X et non en mode console, il faut appuyer sur la touche Ctrl-X à l'invite.


2) Taper init=/bin/sh ou linux single et valider;

Ce mode de démarrage permet d'atteindre le shell sans avoir à se logger. Dans ce mode, le filesystem est en readonly puisque init n'est pas exécuté et que les script rc.* ne le sont donc pas non plus. Donc avant tout changement de mot de passe il faut donc remonter le / en rw par la commande :


# mount -rw -o remount /


3) Modifier le mot de passe

La manière la plus élégante de le faire est :


# passwd root


Si pour une raison ou une autre cela ne marche pas, il faudra éditer le fichier /etc/passwd ou /etc/shadow et le modifier en supprimant le deuxième champ (les caractères bizarres qui se trouvent après les deux points suivant le mot root et avant les deux points suivants) correspondant au mot de passe. Si ce champ comporte un 'x' pour tous les utilisateurs, le système utilise les 'shadow passwords' et il faut éditer /etc/shadow


Ne pas oublier de sauvegarder le fichier ainsi modifié


Enfin, comme le système n'était pas entièrement démarré, il ne faut pas oublier non plus de faire un sync pour prendre en compte les modifications :


# sync


4) Redémarrer normalement la machine.

Au reboot, il y a un fsck.

Vous pouvez maintenant vous logger à nouveau en root sans avoir à taper de mot de passe.


La réalité n'est pas aussi simple

Tous les éditeurs semblent avoir pris des mesures afin que l'invite texte de lilo ne soit pas facilement accessible sur les systèmes configurés pour démarrer sous l'interface graphique.


Les tests faits dans notre laboratoire ont montré que se loguer après avoir oublié le mot de passe root n'est possible que si dans le menu lilo, il est prévu au moins un mode de démarrage à partir d'un périphérique amovible (disquette ou cdrom). Alors il suffit de choisir ce mode de démarrage à partir du menu lilo, tout en prenant soin de laisser le lecteur concerné totalement vide. Dans ces conditions, le démarrage échoue et le système le signale et vous donne l'invite texte de lilo : 'Lilo boot :'.


Mais il existe une autre solution assez pratique quasi universel quand on est bien outillé.


1) Booter avec le CD d'install de sa distribution préférée.

2) Monter la partition racine

3) Editer le fichier /etc/passwd ou /etc/shadow

4) Sauvegarder ses modifications et redémarrer son système et le tour est joué.


Méthodes de protection de son PC sous Linux


1) Protection contre le reset

Le reset, c'est le redémarrage d'un PC par la combinaison de touches CTRL-ALT-DEL. Pour l'empêcher sous Linux, il faut éditer le fichier /etc/inittab en plaçant en commentaire (#) la ligne impliquant le combinaison « ctrlaltdel » :


#ca:ctrlaltdel:/sbin/shutdown -t3 -r now


Pour que ce changement soit effectif sans redémarrer, tapez la commande : init q.


2) Blocage de « linux init=/bin/sh » lors de l'amorçage

Pour empêcher le passage de cette option lors de l'amorçage, il faut éditer à nouveau le fichier /etc/inittab en y ajoutant :


~~:S:wait:/sbin/sulogin


3) Consultation de l'historique et des paramètres du Login

Une bonne précaution est d'exécuter régulièrement la commande « lastlog -u root ». On peut aussi empêcher de consulter l'historique (mais dans ce cas vous ne pourrez plus le consulter vous-même non plus ...) par la séquence de commandes ci-après :


# rm -f /root.bash_history

# ln -s /dev/null /root/.bash_history


Il existe aussi le fichier peu connu /etc/login.defs qui permet de paramétrer son login. Toutes les options ne sont pas actives ; cela dépend de la distribution. Essayez et vous verrez bien (sauf si vous avez accès au man login.defs).


« FAILLOG_ENAB yes » permet de loguer les mauvaises connexions vers /var/log/failog. Par défaut ces mauvaises connexions sont dirigées vers /var/log/messages.

« CONSOLE /etc/securetty » permet de n'autoriser que certains terminaux.


4) Sécurisation de lilo

LILO supporte deux méthodes de sécurisation :


- globale (en début de fichier de configuration) ;

- par image de démarrage.


Malheureusement, les deux méthodes obligent à mettre le mot de passe en clair dans le fichier de configuration de LILO.


Pour la méthode globale, il suffit d'ajouter au début de /etc/lilo.conf les lignes suivantes :


password=mon_mot_de_passe

restricted

delay=3


Pour la seconde méthode, modifier les lignes « image de /etc/lilo.conf comme suit :


image=/boot/bzimage

read-only

password=mon_mot_de_passe

restricted


L'option restricted signifie que le mot de passe n'est réclamé que si quelqu'un tente de passer un argument au noyau (par exemple pour passer en mode single).


Pour que ce changement soit effectif il faut taper la commande : /sbin/lilo.


En guise de conclusion


Ce mini-dossier aurait pu trouver sa place dans une rubrique 'Trucs et astuces'. Mais dans ces cas-là, il n'est pas en général suffisamment développé pour être utilisable par toutes les personnes qui le souhaiteraient.


En faisant ce dossier sur la base d'une distribution récente, nous avons voulu faire en sorte que l'oubli de son mot de passe root ne soit plus synonyme de mini-catastrophe pour les utilisateurs de notre système préféré Linux.


N'hésitez pas à nous communiquer vos propres expériences à ce sujet. Vous contribuerez ainsi à enrichir le présent mini-dossier et permettre qu'il soit toujours d'actualité.



Par l'équipe technique A.N.F.A