1) Accéder aux partitions:

Sans accès au grub, j’ai eu besoin de récupérer un mot de passe root. Pour y arriver, je me suis servi du system rescue cd.
On démarre donc sur le cd:

Le clavier que l’on veut utiliser est demandé lors du démarrage du système. Il suffit donc de préciser « fr » pour avoir un clavier « azerty »:

Si vous avez raté le choix du clavier, une fois logué sur le prompt, il suffit de taper:
loadkeys fr

Il faut ensuite déterminer quelle partition correspond à notre partition système principal (/):
parted --list
ou:
fdisk -l
/dev/sda1 * 1 25 194560 83 Linux
/dev/sda2 25 3188 25600001 5 Extended
/dev/sda5 25 2456 19529728 83 Linux
/dev/sda6 2456 3064 4881408 83 Linux
/dev/sda7 3064 3188 991232 82 Linux swap / Solaris
Dans mon cas, ça sera donc /dev/sda5. Si vous n’arrivez pas à déterminer quelle partition est la partition principale, il est possible de les monter une par une et de voir laquelle contient le répertoire qui nous intéresse (/etc/).

On monte la partition sur un emplacement temporaire:
mkdir /tmp/root
mount -t ext4 /dev/sda5 /tmp/root

2) Supprimer le mot de passe:

Faire un backup du fichier /mnt/root/etc/shadow:
cp /tmp/root/etc/shadow{,.backup}
Ouvrir le fichier:
vi /tmp/root/etc/shadow
Aller à la ligne:
user:$mon_mot_de_passe_tout_crypté:14866:0:99999:7:::
Supprimer « $mon_mot_de_passe_tout_crypté » pour que ça ressemble à:
user::14866:0:99999:7:::
Pour sauvegarder le fichier et quitter « vi »: [Echap] puis taper « :wq« .

3) Modifier le mot de passe:

Plutôt que de supprimer le mot de passe, il est possible de le modifier directement. Pour se faire, il faut d’abord déterminer le type de hash utilisé par le système principal. Pour le savoir, regarder les trois premiers caractères du mot de passe dans /tmp/root/etc/shadow:

$1$: hash md5
$6$: hash sha-512

On génère ensuite un mot de passe hashé en fonction du type géré par le système

mkpasswd -m md5
mkpasswd -m sha-512

Au cas ou, l’utilitaire « mkpasswd » est fourni par le paquet « whois » =).

Il suffit ensuite de remplacer le mot de passe dans /tmp/root/etc/shadow par le résultat de la commande précédente. Pour ceux qui ne saurait pas faire de copier/coller en ligne de commande l’utilitaire screen permet de copier du contenu dans son buffer pour ensuite le recoller où l’on veut. ;)

-> Sous ubuntu, root n’a pas de compte à proprement parler. Il faut donc supprimer ou modifier le mot de passe d’un compte sensé avoir des droits en sudo.

4) Retour sur le système principal:

Puis on redémarre sur notre système principal =)
reboot

Il est maintenant possible de s’identifier sans mot de passe pour le compte choisi. Pour accéder au sudo, il faut remettre un nouveau mot de passe:
passwd
Chose très importante à faire dans tous les cas ^^ (y compris root!).

5) Conclusion …:

Au final, la grande question: comment sécuriser son système avec ces différents moyens pour récupérer un pass root?

  • Utiliser des lvm cryptés me paraît déjà un bon choix
  • Sécuriser le grub avec un mot de passe (pour le lien en fin de page) et verrouiller chaque entrée du grub pour éviter les modifications
  • Un cadenas (… ^^)
  • Enfermer le pc
  • Forcer le démarrage sur cd/dvd + mot de passe bios

Si j’avais eu accès au grub: http://www.korben.info/changer-le-mot-de-passe-dubuntu-quand-on-la-oublie.html

, ,
Trackback

no comment untill now

Add your comment now


2 + neuf =