merci pour l'explication, j'ai bien compris. Donc pour chrooter un programme, il faudrait obligatoirement avoir dans notre système un répertoire qui soit une copie d'un système complet???
Le 4 mai 2009 19:24, Gilles Mocellin <gilles.mocel...@free.fr> a écrit : > Le Monday 04 May 2009 02:12:10 kabore yacouba, vous avez écrit : > > Bonjour la communauté, > > Salut, mais là, tu n'as écrit qu'à moi ! > > > je voudrai savoir ce que c'est un chroot, ou chrooter un programme ??? > > chroot = change root. > La commande chroot permet de lancer un programme dans un environnement > fichiers > dont la racine a été changée. > > Par exemple : > Sur un système on a une arborescence comme ceci : > / > /usr > /var > ... > /test > /test/usr > /test/var > ... > > Le contenu de /test est une copie d'un système complet, éventuellement dans > une autre version. > > Si tu lance le programme /test/usr/bin/programme, il y a de fortes chances > qu'il utilise des librairies dynamiques partagée. > Il les cherchera dans /usr/lib/... > Pareil pour des fichiers de configuration dans /etc, des données dans > /var/lib > ou /usr/share... > Tu n'exécutera donc pas vraiment ce que tu penses. > > Pour que le programme utilise les fichiers dans /test/etc /etc/usr/share > /test/usr/lib, il suffit de lui faire croire que la racine "/" c'est /test. > > et voilà, on lance : > $ chroot /test /usr/bin/programme. > > Si le programme en question est un shell, ça donne l'impression d'être sur > un > autre système, tous les fichiers en dessous de / sont différents. > > Exemple : > On crée un fichier repère dans /test : > $ touch /test/dans-test > On chroot > $ chroot /test > Par defaut, si on ne donne pas de programme, ça lance le shell de > l'utilisateur (/bin/bash) > Et miracle : > $ ls -l / > ... > /dans-test > ... > > Le fichier "dans-test" est sous la racine. > Et il n'y a pas de répertoire /test. > > On ressort > $ exit > $ ls -l /test > ... > dans-test > ... > > dans-test est dans /test ;-) > > Voilà, j'espère que c'est assez claire. >