La Commande Chroot Sous Linux

Qu’est-ce Que La Commande Chroot ?

La commande chroot modifie le répertoire racine apparent du processus en cours ainsi que ses processus enfants. Dans un système basé sur Unix, la racine fait référence au répertoire de base (/). Chroot crée un faux environnement racine dans lequel le processus s’exécute. Les processus exécutés dans un tel environnement ne peuvent pas accéder aux fichiers et aux commandes en dehors de cet environnement ou nous pouvons dire que « le processus est emprisonné dans cet environnement » . Par conséquent, l’environnement créé est également appelé « chroot jail » .

Où La Commande Chroot Est-elle Utilisée ?

L’environnement de choort peut être particulièrement utile aux fins suivantes :

  • Récupération de votre système de fichiers et réinstallation du chargeur de démarrage : Nous pouvons utiliser la commande chroot pour monter un système de fichiers endommagé sur un point de montage sur un CD live. Cela nous permet de travailler sur le système de dommages et d’essayer de le réparer comme s’il était monté normalement à la racine (/).
  • Tests de logiciels : les environnements de test offrent un bon moyen d’exécuter et de tester de nouveaux logiciels qui, autrement, auraient pu causer des problèmes à l’échelle du système. Généralement, les conteneurs sont utilisés pour ce type de tâches, mais l’environnement chroot peut être un moyen facile de tester de petits scripts sans laisser de traces sur votre système principal.
  • Exécution de logiciels avec des dépendances incompatibles : deux logiciels avec des dépendances conflictuelles peuvent être exécutés en conservant une application et ses dépendances dans un dossier chroot séparé.

Comment utiliser la commande chroot sous Linux ?

Une fois la théorie terminée, apprenons à utiliser la commande chroot.

Syntaxe de chroot avec arguments :

Le exécute la COMMANDE avec le répertoire racine défini sur NEWROOT.

Les OPTIONS disponibles pour chroot sont :

Si aucune COMMANDE n’est spécifiée, la commande par défaut « €SHELL » -i est exécutée.

Syntaxe de chroot avec options :

OPTION chroot

Les OPTIONS sont :

Exemple D’utilisation De La Commande Chroot

Pour une démonstration de la commande chroot, nous allons créer un environnement chroot et exécuter le shell bash à l’intérieur.

1. Créez le répertoire chroot. Appelons-le fake_root.

mkdir €HOME/fake_root

2. Créez les répertoires requis dans fake_root à l’aide de la commande mkdir. Le bin contient généralement les binaires et lib,lib64 contient conjointement les bibliothèques requises par ces programmes.

mkdir -p €HOME/fake_root/bin,lib,lib64 

3. Copiez les binaires requis de la racine vers l’environnement chroot. C’est aussi parfois une bonne option d’inclure des éditeurs de texte comme vim à de petites fins d’édition.

cp /bin/bash,ls €HOME/fake_root/bin/

4. Ces binaires ont des dépendances qui sont stockées dans lib et lib64. Nous devons également copier ces dépendances dans l’environnement chroot si nous voulons que les binaires fonctionnent correctement.

ldd /bin/bash,ls

Fig 1: Dépendance de ls et bash dans Ubuntu

5. Copiez les dépendances dans l’environnement chroot à l’aide de la commande cp

cp -parent /lib/x86_64-linux-gnu/libtinfo.so.6,/lib/x86_64-linux-gnu/libdl.so.2,/lib/x86_64-linux-gnu/libc.so.6,/lib64 /ld-linux-x86-64.so.2,/lib/x86_64-linux-gnu/libpthread.so.0,/lib/x86_64-linux-gnu/libselinux.so.1,/lib/x86_64-linux- gnu/libpcre2-8.so.0, ~/fake_root/

6. Après avoir copié avec succès les dépendances, exécutez la commande chroot

sudo chroot €HOME/jail /bin/bash

Fig 2: Entrez dans l’environnement chroot

Après avoir activé l’environnement chroot, vous pouvez le tester en vérifiant si vous pouvez accéder aux fichiers en dehors de fake_root sans augmenter les privilèges root .

Conclusion