Pour Linux OS, il existe un outil disponible, connu sous le nom de chroot, qui fournit un moyen plus facile et plus rapide de sable une application. Avec Chroot, vous pouvez installer et tester n'importe quelle application sans affecter le reste du système.
Cet article expliquera comment utiliser Chroot dans Debian 10 Buster, ainsi que quelques exemples. Pour expliquer, nous créerons un environnement de 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 de Linux qui modifie le répertoire racine d'une application vers un autre répertoire. Les processus exécutés 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 copie l'application et tous ses exécutables et dépendances dans le répertoire racine alternatif. Il exécute ensuite l'application à partir de cet autre répertoire racine, ce qui fait que l'application le considère comme le répertoire racine d'origine. Le répertoire racine est le répertoire le plus élevé de la hiérarchie, et aucune application ne peut atteindre plus haut que ce répertoire, c'est ainsi que Chroot isole l'application du reste du système.
Cas d'utilisation
Syntaxe
Ce qui suit est la syntaxe de base pour la commande chroot:
$ chrootcommande
Suivez les étapes ci-dessous pour utiliser la commande Chroot dans Debian pour configurer un environnement de chroot.
Créer un autre répertoire racine
Tout d'abord, créez un autre répertoire racine à utiliser pour l'environnement de chroot.
$ sudo mkdir ~ / new_root
La commande ci-dessus créera le new_root répertoire sous le Maison répertoire, qui sera utilisé comme répertoire racine dans l'environnement de chroot.
Ajouter des répertoires essentiels
Créez les répertoires «bac», «lib» et «lib64» sous le ~ / new_root annuaire:
$ sudo mkdir -p ~ / new_root / bin, lib, lib64
Copier les binaires du programme
Tout ce qui est nécessaire pour exécuter une application dans l'environnement de chroot doit être dans le répertoire racine alternatif. Dans cet article, nous créerons un environnement de chroot pour le bash et certaines commandes, y compris les commandes «LS», «IP» et «PWD». Par conséquent, nous copierons les binaires du /poubelle répertoire de l'alternative ~ / new_root / bin annuaire. Pour localiser les binaires des commandes, utilisez la commande qui:
$ qui bash ls ip pwd
Ensuite, copiez les binaires des commandes au ~ / new_root / bin annuaire.
$ sudo cp -v / bin / bash, ls, ip, pwd ~ / new_root / bin
Copier les dépendances du programme
Nous aurons également besoin de 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 ~ / New_root / Lib Directory.
Copie des dépendances pour bash
Tout d'abord, découvrez les dépendances du programme Bash:
$ ldd / bin / bash
Ensuite, copiez ces dépendances au ~ / new_root / lib annuaire.
$ cp -v / lib / x86_64-linux-gnu / libtinfo.donc.6, libdl.donc.2, libc.donc.6 ~ / new_root / lib
Pour les fichiers / lib64, copiez-les dans le ~ / new_root / lib64 annuaire.
$ cp -v / lib64 / ld-linux-x86-64.donc.2 ~ / new_root / 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 au ~ / new_root / lib annuaire.
$ sudo cp -v / lib / x86_64-linux-gnu / libslelinux.donc.1, libc.donc.6, libpcre.donc.3,
libdl.donc.2, libpthread.donc.0 / lib64 / ld-linux-x86-64.donc.2 ~ / new_root / lib
Pour les fichiers / lib64, copiez-les dans le ~ / new_root / lib64 annuaire.
$ sudo cp -v / lib64 / ld-linux-x86-64.donc.2 ~ / new_root / 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 au ~ / new_root / lib annuaire.
$ cp -v / lib / x86_64-linux
GNU / Libslelinux.donc.1, libelf.donc.1, libmnl.donc.0, libcap.donc.2, libdl.donc.2, libc.donc.6,
libpcre.donc.3, libz.donc.1, libpthread.donc.0 ~ / new_root / lib
Pour les fichiers / lib64, copiez-les dans le ~ / new_root / lib64 annuaire.
$ sudo cp -v / lib64 / ld-linux-x86-64.donc.2 ~ / new_root / 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 au ~ / new_root / lib annuaire.
$ sudo cp -v / lib / x86_64-linux-gnu / libc.donc.6 ~ / new_root / lib
Pour les fichiers / lib64, copiez-les dans le ~ / new_root / lib64 annuaire.
$ sudo cp -v / lib64 / ld-linux-x86-64.donc.2 ~ / new_root / lib64
Pour afficher tous les répertoires du répertoire racine alternatif, utilisez la commande suivante:
$ ls -r
Passez au répertoire racine alternatif
Maintenant, nous sommes enfin prêts à passer à notre nouvel environnement de chroot. Pour modifier le répertoire racine, exécutez la commande suivante dans le shell avec les privilèges racine:
$ sudo chroot ~ / new_root / bin / bash
Où ~ / new_root est notre répertoire racine alternatif et / bac / bash est l'application que nous avons utilisée pour configurer l'environnement de chroot.
Après avoir exécuté la commande ci-dessus, vous verrez que l'invite bash a changé en bash-x.y qui dans notre cas est bash-5.0 (Où 5.0 est le numéro de version bash).
Note: Vous pouvez rencontrer l'erreur suivante après l'exécution de la commande chroot, comme moi:
Si cette erreur se produit, vérifiez que vous avez ajouté toutes les bibliothèques et exécutables liés au programme requis au nouveau répertoire racine.
Après être entré dans l'environnement de chroot, vous ne pourrez y accéder que le fichier à l'intérieur. Essayez d'exécuter les commandes que vous avez configurées pour votre environnement de 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 de chroot. Comme vous pouvez le voir dans la capture d'écran suivante, nous avons essayé d'exécuter les commandes «toucher», «ping» et «claire», et tous ont échoué.
Chroot de sortie
Pour quitter l'environnement de chroot, utilisez le sortie commande.
Conclusion
Dans cet article, vous avez appris ce qu'est le chroot et comment il fonctionne dans Linux. Cet article vous a montré étape par étape comment utiliser le chroot dans Debian 10 Buster pour créer un environnement de chroot pour bash et autres commandes. Maintenant, vous devriez être à l'aise d'utiliser la commande Chroot pour modifier le répertoire racine d'un processus et ses sous-processus et les isoler du reste du système.