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.