3. Installation des programmes

... et pourtant, c'est si simple. Le problème que nous venons de rencontrer est que ls n'existe pas sur la nouvelle racine. Cela indique que nous avons de grandes chances de nous trouver effectivement sur la nouveller racine. Ne soyons pas catégorique cependant: une variable $PATH mal positionnée et nous avons la même erreur.

L'installation des programmes dans la nouvelle racine part toujours de la même manière. On copie le programme dans la nouvelle racine au même endroit qu'à sa place initiale. Et on regarde de quelles bibliothèques il a besoin. Il peut arrive qu'une bibliothèque aie besoin d'une autre. Il faut aussi regarder pour les bibliothèques, avec ldd aussi. Une autre méthode consiste à copier le programme et à le tester dans l'environnement chrooté, et à copier les bibliothèques jusqu'à ce qu'il fonctionne. Un peu de pratique avec ls:

# cp /bin/ls /mnt/chroot/bin/
# ldd /bin/ls 
libtermcap.so.2 => /lib/libtermcap.so.2 (0x40020000)
libc.so.6 => /lib/i686/libc.so.6 (0x40025000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
	

Ici, tout va bien, les bibliothèques sont déjà installées. Vous n'avez plus qu'à vous remettre dans l'environnement chrooté et à lancer ls:

# chroot /mnt/chroot/ /bin/bash
[I have no name!@localhost /]# ls
bin lib
	

Je vous conseille de copier non seulement ls comme nous avons vu, mais les outils de base de gestion des fichiers, comme cat, more, cp, mv, rm et mkdir. Ceci vous permettra de monter votre environnement chrooté facilement. Par contre, si l'objectif est ensuite d'améliorer la sécurité, de protéger un démon, vous veillerez à supprimer ces outils qui ne sont pas nécessaires, voire autant d'outils qui aideront un éventuel pirate à briser les protections.

création est mise à disposition sous un contrat Creative Commons