GNU/Linux >> Tutoriels Linux >  >> Linux

Un guide pratique pour la commande chroot sous Linux

Parfois, vous devrez peut-être isoler un processus des autres processus en cours d'exécution sur votre système. Nous pouvons le faire en utilisant la commande chroot sous Linux.

Dans ce didacticiel, nous allons vous montrer ce qu'est la commande chroot et comment vous pouvez l'utiliser pour créer une prison chroot et piéger un utilisateur ou un groupe dans un environnement isolé.

Comprendre la commande chroot sous Linux

La commande chroot est essentielle dans les systèmes Linux. Il vous aide à modifier le répertoire racine d'un processus ainsi que ses processus enfants. Lorsque nous créons un faux répertoire racine pour un utilisateur ou un groupe, il perd l'accès au vrai répertoire racine.

Par conséquent, l'utilisateur ou le groupe est désormais isolé du reste de notre système. Cela peut avoir de nombreuses utilisations, telles que les suivantes :

  • Créer un environnement de test pour le développement et les tests de logiciels
  • Initialiser la réinstallation des fichiers du chargeur de démarrage sur votre système
  • Exécuter des logiciels qui peuvent être décrépits
  • Améliorer la sécurité à l'aide d'un mécanisme de cantonnement

La commande chroot crée essentiellement un environnement virtuel. Sa fonction est similaire à celle d'une machine virtuelle, mais elle ne vous oblige pas à consacrer des ressources dédiées à la prison chroot.

L'environnement virtuel partage tout le noyau avec le système hôte.

Syntaxe de la commande chroot

La commande chroot sous Linux a la syntaxe suivante.

chroot [-OPTION] [PATH FOR NEW ROOT] [PATH FOR SERVER]

Le seul paramètre nécessaire pour exécuter une commande chroot est le chemin du nouveau répertoire racine. Cependant, vous pouvez utiliser les options disponibles dans la commande chroot pour obtenir les résultats souhaités.

Voici les options à votre disposition lorsque vous utilisez la commande chroot sous Linux.

  • –userspec=USER[:GROUP] – Utilisé pour définir l'utilisateur ou le groupe sur lequel on souhaite utiliser la commande chroot. Nous pouvons spécifier le groupe ou l'utilisateur que nous souhaitons utiliser par nom ou ID
  • –groups=G_List – Utilisé pour spécifier des groupes supplémentaires que nous souhaitons utiliser comme G1, G2… Gn
  • — aide – Affiche un écran d'aide et quitte
  • –version – Affiche les données de version et quitte

Créer une prison de commande chroot

Maintenant que nous comprenons la commande chroot et sa syntaxe, il est temps de l'utiliser. Pour vous montrer comment c'est fait, nous allons créer une prison chroot.

Une prison chroot est un environnement virtuel créé en changeant le répertoire racine d'un utilisateur ou d'un groupe vers un nouveau répertoire. Ce nouveau répertoire sert de faux répertoire racine pour notre jail chroot.

Passons en revue les étapes que vous devez suivre pour utiliser la commande chroot sous Linux afin de créer une prison chroot.

1. Créer un répertoire

Tout d'abord, nous allons commencer par créer un faux répertoire racine dans /home/chroot_jail à l'aide de la commande mkdir.

mkdir $home/chroot_jail

Cela créera un répertoire à l'adresse donnée que nous utiliserons pour notre jail chroot. Cependant, avant de laisser la commande chroot faire son travail, nous devons ajouter les fichiers requis à notre nouveau répertoire.

2. Ajouter les répertoires racine requis

Nous allons commencer par créer /bin, /lib et /lib64 dans notre répertoire jail. La commande pour créer ces répertoires est donnée ci-dessous.

mkdir -p $home/chroot_jail/{bin,lib,lib64}

Comme vous pouvez le constater, les répertoires que nous créons dans notre environnement virtuel sont spécifiés entre accolades ('{}').

Maintenant, nous allons utiliser la commande cd pour faire de chroot_jail notre nouveau répertoire racine.

cd $home/chroot_jail

3. Déplacer les fichiers binaires de commande autorisés

Nous créons un environnement Linux minimaliste pour cet exemple. Utilisons les commandes bash, ls, rm et touch pour faire partie des fonctionnalités de notre environnement virtuel.

Copiez les binaires de notre répertoire racine /bin dans le répertoire /bin de notre chroot_jail. Nous le faisons en utilisant la commande cp avec la balise -v (verbose) afin que nous puissions voir ce qui est copié à un moment donné.

cp -v /bin/{bash,touch,ls,rm} $home/chroot_jail

Comme vous pouvez le voir, les binaires que nous souhaitons copier sont mentionnés entre accolades. Les fichiers des binaires donnés ont maintenant été copiés dans notre nouveau répertoire de prison chroot.

4. Résolution des dépendances de commande

Mais ces binaires auront des dépendances. Les dépendances pour bash peuvent être trouvées à l'aide de la commande ldd.

ldd /bin/bash

Nous allons maintenant utiliser la commande cp pour copier soigneusement les répertoires dans notre prison chroot un par un. Nous devons nous assurer de copier toutes les bibliothèques de dépendances, sinon notre jail chroot ne fonctionnera pas correctement. Remplacez la partie par les répertoires séparés par des virgules.

cp -v {<List dependencies here>} $home/chroot_jail/lib64

Nous allons répéter ces étapes pour toutes les commandes que nous voulons autoriser dans la prison chroot. Trouvez les bibliothèques de dépendances et copiez-les dans le répertoire chroot_jail.

5. Passage au nouveau répertoire racine

Maintenant, tout ce qu'il nous reste à faire est de changer le répertoire racine de notre jail chroot vers le nouveau faux répertoire que nous venons de créer.

Pour changer de répertoire et spécifier bash à exécuter en tant qu'application que nous exécutons en tant que shell pour notre environnement virtualisé, nous utilisons la commande suivante.

sudo chroot $home/chroot_jail/bin/bash

Vous serez peut-être invité à entrer votre mot de passe utilisateur pour continuer. Dans ce cas, entrez votre mot de passe utilisateur et la commande sera exécutée.

Si vous avez suivi toutes les étapes correctement, vous devriez vous attendre à voir une sortie similaire à la suivante sur votre écran.

Comme vous pouvez le voir sur la capture d'écran, la version 4.4 de bash fonctionne maintenant comme shell pour notre prison chroot.

Maintenant, notre environnement Linux virtuel minimaliste a été créé et il est prêt à être utilisé. Nous pouvons interagir avec l'environnement virtuel en utilisant bash comme un système Linux classique.

Conclusion

La commande chroot sous Linux est une commande simple mais efficace dans l'ensemble d'outils d'un utilisateur Linux. Sa capacité à créer un environnement virtualisé, sans avoir besoin d'aucun logiciel de supervision comme on le voit avec les machines virtuelles, en fait une alternative légère pour cet usage.

Ce didacticiel visait à vous aider à comprendre ce qu'est le chroot, puis à vous montrer comment créer une prison chroot simple. Si vous avez des questions, des commentaires ou des suggestions, n'hésitez pas à nous contacter dans les commentaires ci-dessous.


Linux
  1. Un guide du terminal Linux pour les débutants

  2. Maîtrisez la commande Linux ls

  3. 8 exemples pratiques de la commande Linux Xargs pour les débutants

  4. Un guide de la commande Linux "Rechercher"

  5. Un guide de la commande Linux "Top"

12 exemples pratiques d'In Command sous Linux

25 Commande mv pratique sous Linux pour les utilisateurs de tous les jours

Les 50 exemples pratiques de la commande SED sous Linux

5 exemples pratiques de la commande Read sous Linux

La commande apt - Un guide d'utilisation pratique

Commandes Linux et Unix Tee pratiques pour l'administrateur Linux