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.
>

Répondre à