Comment utiliser le chroot dans Debian Top 10

Comment utiliser le chroot dans Debian Top 10
Dans un environnement d'essai, nous devons souvent bac à sable certaines applications pour les empêcher d'endommager ou d'étouffer le reste du système. Il existe différents outils disponibles pour le sable d'un programme et l'empêcher d'affecter le reste du système, comme VirtualBox, VMware, Xen, KVM, etc. Cependant, pour seulement une seule ou quelques applications, le sable un système d'exploitation entier ne semble pas pratique.

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

  • Configuration d'un environnement de test
  • Exécuter des programmes 32 bits sur un système 64 bits
  • Exécuter des versions de programme plus anciennes sur la dernière version du système d'exploitation
  • Récupération de mot de passe

Syntaxe

Ce qui suit est la syntaxe de base pour la commande chroot:

$ chroot commande

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

~ / 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.