[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: chroot et autre OS



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


Reply to: