GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que la prison chroot et comment l'utiliser ?

Présentation

Le terme prison chroot remonte à 1992 et est fréquemment utilisé aujourd'hui. Mais que signifie ce terme, et à quoi sert cette opération ?

Dans ce didacticiel, nous couvrirons les bases de l'utilisation des prisons chroot et vous montrerons comment en configurer une.

Prérequis

  • Un système exécutant un système d'exploitation Linux ou Unix
  • Un compte utilisateur avec des privilèges de niveau sudo
  • Accès au terminal/ligne de commande

Qu'est-ce que la prison chroot ?

Un chroot (abréviation de changer de racine ) est une opération Unix qui remplace le répertoire racine apparent par celui spécifié par l'utilisateur.

Tout processus que vous exécutez après une opération chroot n'a accès qu'au répertoire racine nouvellement défini et à ses sous-répertoires. Cette opération est familièrement connue sous le nom de prison chroot puisque ces processus ne peuvent ni lire ni écrire en dehors du nouveau répertoire racine.

À quoi sert la prison chroot ?

Prison chroot est utilisé pour créer un bac à sable limité dans lequel un processus peut s'exécuter. Cela signifie qu'un processus ne peut pas modifier de manière malveillante des données en dehors de l'arborescence de répertoires prescrite.

Une autre utilisation des prisons chroot est de remplacer les machines virtuelles. Cette méthode est appelée virtualisation au niveau du noyau et nécessite moins de ressources que les machines virtuelles. Cette opération permet aux utilisateurs de créer plusieurs instances isolées sur le même système.

Comment utiliser la prison chroot

Cet exemple vous explique comment créer et configurer une prison chroot afin qu'elle puisse exécuter bash et ls commandes.

Suivez ces étapes :

1. Créez un nouveau répertoire appelé chroot_jail :

mkdir chroot_jail

Si nous essayons de chroot dans le nouveau répertoire, nous obtenons la sortie suivante :

Vous devez activer le bash commande avant de pouvoir chroot dans le nouveau répertoire. Cela nécessite de copier le fichier de commandes et toutes les bibliothèques associées dans le nouveau répertoire racine.

2. Créez une nouvelle arborescence de sous-répertoires dans chroot_jail :

mkdir -p chroot_jail/bin chroot_jail/lib64/x86_64-linux-gnu chroot_jail/lib/x86_64-linux-gnu

Ces sous-répertoires stockeront tous les éléments nécessaires du bash et ls commandes.

3. Utilisation du cp commande avec le which la commande permet de copier bash et ls commandes sans spécifier le chemin à partir duquel vous copiez.

Pour ce faire, utilisez :

cp $(which ls) chroot_jail/bin/
cp $(which bash) chroot_jail/bin/

4. Pour bash et ls pour travailler dans le nouveau dossier racine, ajoutez toutes les bibliothèques associées à chroot_jail/libraries . Utilisez le ldd commande pour savoir quelles librairies sont associées à quelle commande :

ldd $(which bash)
ldd $(which ls)

5. Copiez les bibliothèques appropriées dans le chroot_jail sous-répertoires lib et lib64 .

Pour le bash commande :

cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/

Pour le ls commande :

cp /lib/x86_64-linux-gnu/libselinux.so.1 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libpcre2-8.so.0 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
cp /lib/x86_64-linux-gnu/libpthread.so.0 chroot_jail/lib/x86_64-linux-gnu/

6. Utilisez le chroot commande pour changer la racine en chroot_jail répertoire :

sudo chroot chroot_jail

Utilisez le ls commande pour répertorier tous les fichiers et répertoires dans la nouvelle arborescence de répertoires racine :

ls -R

7. Une fois que vous avez terminé d'utiliser le nouveau dossier racine, quittez le shell :

exit

Linux
  1. Chroot "prison" - Qu'est-ce que c'est et comment l'utiliser ?

  2. Qu'est-ce que c'est et comment utiliser le dossier public_ftp

  3. Comment exécuter les services DNS et FTP dans une prison chroot

  4. Qu'est-ce que Build-Essential-Ubuntu, comment l'installer et l'utiliser ?

  5. Qu'est-ce qu'un fichier u-Boot dtb et comment l'utiliser (BeagleBoard xM) ?

Qu'est-ce qu'EFS (Elastic File System) dans AWS et comment l'utiliser

Qu'est-ce que Terraform et comment l'installer et l'utiliser sur AWS EC2

Qu'est-ce que les conteneurs multi-comptes Firefox ? Pourquoi et comment l'utiliser ?

Qu'est-ce qu'EasyApache et comment l'utiliser ?

Qu'est-ce que Docker Compose et comment l'utiliser ?

Qu'est-ce que PPA dans Ubuntu Linux et comment les utiliser