Debian

Comment utiliser chroot dans Debian 10

Comment utiliser chroot dans Debian 10
Dans un environnement de test, nous devons souvent mettre en sandbox certaines applications pour les empêcher d'endommager ou d'espionner le reste du système. Il existe différents outils disponibles pour sandboxer un programme et l'empêcher d'affecter le reste du système, comme VirtualBox, VMware, Xen, KVM, etc. Cependant, pour une seule ou quelques applications, le sandboxing d'un système d'exploitation entier ne semble pas pratique.

Pour le système d'exploitation Linux, il existe un outil disponible, appelé chroot, qui fournit un moyen plus simple et plus rapide de sandboxer une application. Avec chroot, vous pouvez installer et tester n'importe quelle application sans affecter le reste du système.

Cet article explique comment utiliser chroot dans Debian 10 Buster, avec quelques exemples. Pour plus d'explications, nous allons créer un environnement chroot pour le bash et certaines des commandes, telles que les commandes "ls", "ip" et "pwd".

Qu'est-ce que le chroot?

L'outil chroot est une commande sous Linux qui change le répertoire racine d'une application vers un autre répertoire. Les processus en cours d'exécution dans ce nouveau répertoire racine ne peuvent pas accéder aux fichiers en dehors de celui-ci. Par conséquent, il isole les opérations des applications du reste du système.

Comment fonctionne le chroot?

Chroot fonctionne en copiant l'application et tous ses exécutables et dépendances dans le répertoire racine alternatif. Il exécute ensuite l'application à partir de ce répertoire racine alternatif, ce qui amène l'application à le considérer comme le répertoire racine d'origine. Le répertoire racine est le répertoire le plus haut dans la hiérarchie, et aucune application ne peut atteindre plus haut que ce répertoire, c'est donc ainsi que chroot isole l'application du reste du système.

Cas d'utilisation

Syntaxe

Voici la syntaxe de base de la commande chroot :

$ chroot commander

Suivez les étapes ci-dessous pour utiliser la commande chroot dans Debian pour configurer un environnement chroot.

1. Créer un répertoire racine alternatif

Tout d'abord, créez un autre répertoire racine à utiliser pour l'environnement chroot.

$ sudo mkdir ~/nouvelle_racine

La commande ci-dessus créera le nouvelle_racine répertoire sous le Domicile répertoire, qui sera utilisé comme répertoire racine dans l'environnement chroot.

2. Ajouter des répertoires essentiels

Créez les répertoires « bin », « lib » et « lib64 » sous le ~/nouvelle_racine annuaire:

$ sudo mkdir -p ~/new_root/bin,lib,lib64

3. Copier les binaires du programme

Tout ce qui est nécessaire pour exécuter une application dans l'environnement chroot doit être dans le répertoire racine alternatif. Dans cet article, nous allons créer un environnement chroot pour le bash et certaines commandes, y compris les commandes "ls", "ip" et "pwd". Par conséquent, nous allons copier les binaires du /poubelle répertoire vers l'autre ~/nouvelle_racine/bin annuaire. Pour localiser les binaires des commandes, utilisez la commande which :

$ quel bash ls ip pwd

Ensuite, copiez les binaires des commandes dans le ~/nouvelle_racine/bin annuaire.

$ sudo cp -v /bin/bash,ls,ip,pwd  ~/nouvelle_racine/bin

4. Copier les dépendances du programme

Nous devrons également déterminer les dépendances dont notre programme a besoin. Tout d'abord, nous devrons trouver quelles sont ces dépendances, puis nous les copierons dans le Répertoire ~/nouvelle_racine/lib.

Copier les dépendances pour bash

Tout d'abord, découvrez les dépendances du programme bash :

$ ldd /bin/bash

Ensuite, copiez ces dépendances dans le ~/nouvelle_racine/lib annuaire.

$ cp -v /lib/x86_64-linux-gnu/libtinfo.donc.6, libdl.donc.2,libc.donc.6 ~/nouvelle_racine/lib

Pour les fichiers /lib64, copiez-les dans le ~/nouvelle_racine/lib64 annuaire.

$ cp -v /lib64/ld-linux-x86-64.donc.2 ~/nouvelle_racine/lib64

Copier les dépendances pour la commande ls

Tout d'abord, découvrez les dépendances de la commande ls :

$ ldd /bin/ls

Ensuite, copiez ces dépendances dans le ~/nouvelle_racine/lib annuaire.

$ sudo cp -v /lib/x86_64-linux-gnu/libselinux.donc.1,libc.donc.6,libpcre.donc.3,
libdl.donc.2, libpthread.donc.0 /lib64/ld-linux-x86-64.donc.2 ~/nouvelle_racine/lib

Pour les fichiers /lib64, copiez-les dans le ~/nouvelle_racine/lib64 annuaire.

$ sudo cp -v /lib64/ld-linux-x86-64.donc.2 ~/nouvelle_racine/lib64

Copier les dépendances pour la commande ip

Tout d'abord, découvrez les dépendances de la commande ip :

$ ldd /bin/ip

Ensuite, copiez ces dépendances dans le ~/nouvelle_racine/lib annuaire.

$ cp -v /lib/x86_64-linux
gnu/libselinux.donc.1, diffamation.donc.1,libmnl.donc.0,libcap.donc.2, libdl.donc.2,libc.donc.6,
libpcre.donc.3,libz.donc.1, libpthread.donc.0 ~/nouvelle_racine/lib

Pour les fichiers /lib64, copiez-les dans le ~/nouvelle_racine/lib64 annuaire.

$ sudo cp -v /lib64/ld-linux-x86-64.donc.2 ~/nouvelle_racine/lib64

Copier les dépendances pour la commande pwd

Tout d'abord, découvrez les dépendances de la commande pwd :

$ ldd /bin/pwd

Ensuite, copiez ces dépendances dans le ~/nouvelle_racine/lib annuaire.

$ sudo cp -v /lib/x86_64-linux-gnu/libc.donc.6  ~/nouvelle_racine/lib

Pour les fichiers /lib64, copiez-les dans le ~/nouvelle_racine/lib64 annuaire.

$ sudo cp -v /lib64/ld-linux-x86-64.donc.2 ~/nouvelle_racine/lib64

Pour afficher tous les répertoires du répertoire racine alternatif, utilisez la commande suivante :

$ ls -R

5. Basculer vers un autre répertoire racine

Maintenant, nous sommes enfin prêts à passer à notre nouvel environnement chroot. Pour changer de répertoire racine, exécutez la commande suivante dans le shell avec les privilèges root :

$ sudo chroot ~/nouvelle_racine /bin/bash

~/nouvelle_racine est notre répertoire racine alternatif et /bin/bash est l'application que nous avons utilisée pour configurer l'environnement chroot.

Après avoir exécuté la commande ci-dessus, vous verrez que l'invite bash est devenue bash-x.oui qui dans notre cas est bash-5.0 (où 5.0 est le numéro de version bash).

Noter: vous pouvez rencontrer l'erreur suivante après avoir exécuté la commande chroot, comme je l'ai fait :

Si cette erreur se produit, vérifiez que vous avez ajouté toutes les bibliothèques et exécutables liés au programme requis dans le nouveau répertoire racine.

Après être entré dans l'environnement chroot, vous ne pourrez accéder qu'au fichier qu'il contient. Essayez d'exécuter les commandes que vous avez configurées pour votre environnement chroot, y compris certaines commandes intégrées. Vous pouvez trouver les commandes intégrées en exécutant le aider commande dans le shell.

Vous pouvez voir que nous avons essayé les commandes "ls", "pw" et "ip", et toutes ont réussi. Si nous exécutons une commande autre que ces trois commandes et les commandes intégrées, la commande échouera, car nous ne l'avons pas configurée pour l'environnement chroot. Comme vous pouvez le voir dans la capture d'écran suivante, nous avons essayé d'exécuter les commandes "touch", "ping" et "clear", et toutes ont échoué.

6. Quitter le chroot

Pour quitter l'environnement chroot, utilisez le sortir commander.

Conclusion

Dans cet article, vous avez appris ce qu'est chroot et comment il fonctionne sous Linux. Cet article vous a montré étape par étape comment utiliser chroot dans Debian 10 Buster pour créer un environnement chroot pour bash et d'autres commandes. Maintenant, vous devriez être à l'aise avec la commande chroot pour changer le répertoire racine d'un processus et de ses sous-processus et les isoler du reste du système.

Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...
Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...