3.9 KiB
L'isolation ... à 1 € ?
Depuis les premières versions d'Unix, il est possible de changer le répertoire
vu comme étant la racine du système de fichiers. En anglais : change root:
chroot
. Le processus effectuant cette action ainsi que tous ses fils verront
donc une racine différente du reste du système.\
Pour se créer un environnement afin de changer notre racine, il va falloir commencer par créer le dossier de notre nouvelle racine, peu importe où dans l'arborescence :
Nous allons ensuite remplir ce dossier afin qu'il soit vraiment utilisable comme une racine : rien n'est strictement obligatoire, on s'assure simplement d'avoir de quoi bidouiller : un shell sera amplement suffisant pour commencer.
busybox
Queques mots, pour commencer, à propos du projet Busybox : c'est un programme
couteau-suisse qui implémente tous les binaires vitaux pour avoir un système
fonctionnel et utilisable : ls
, sh
, cat
, mais aussi init
, mdev
(un
udev
-like, cela permet de découvrir les périphériques attachés afin de les
exposer dans /dev
notamment). C'est un programme linké statiquement,
c'est-à-dire qu'il ne va pas chercher ni charger de bibliothèque dynamique à
son lancement. Il se suffit donc à lui-même dans un chroot, car il n'a pas de
dépendances. Nous pouvons donc tester notre première isolation :
Nous voici donc maintenant dans un nouveau shell (il s'agit d'ash
, le shell
de busybox
).
Jusque là ... ça fonctionne, rien de surprenant ! Mais qu'en est-il pour
bash
:
De quel fichier est-il question ici ?
debootstrap
, pacstrap
debootstrap
est le programme utilisé par l'installeur des distributions
Debian et ses dérivées. Il permet d'installer dans un dossier (en général, ce
dossier correspond au point de montage de la nouvelle racine choisie par
l'utilisateur lors de l'installation) le système de base.
pacstrap
est le programme équivalent pour Arch Linux. Alors que debootstrap
peut s'utiliser depuis n'importe quel environnement ou distribution,
pacstrap
nécessite d'avoir installé et configuré pacman
(le gestionnaire de
paquets d'Arch Linux), ce qui est le cas si vous êtes sous Arch Linux ou ses
dérivées.
Dans les deux cas, nous nous retrouvons avec un dossier newroot
contenant une
distribution complète minimale, dans laquelle nous pouvons entrer :
Archives stage3, miniroot
Les distributions à l'ancienne proposent de télécharger leur système de base sous forme de tarball :
Gentoo\
::::: {.more}
L'avantage de télécharger l'archive de Gentoo est que l'on a déjà gcc
dans un
environnement qui tient dans 200 MB.
:::::
Comme pour les autres distributions vues précédemment, nous pouvons entrer dans notre nouvelle racine comme ceci :
Alpine\
Alpine se contentant de Busybox pour son système de base, nous n'avons pas
bash
, mais on peut tout de même lancer ash
: