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

Re: chroot et autre OS



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.

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: