accueil > Gestion des paquets et du système > chroot

chroot : Changer le répertoire racine

La commande chroot modifie le répertoire racine du processus en cours vers un nouveau répertoire racine spécifié. Ceci est très utile pour tester des logiciels dans un environnement isolé, pour récupérer un système endommagé, ou pour exécuter des applications spécifiques dans un environnement restreint.

Aperçu

chroot est l'abréviation de 'change root' et est une commande qui modifie le répertoire racine du processus en cours. L'utilisation de cette commande permet de créer un environnement isolé où le répertoire spécifié agit comme le répertoire racine principal du système. Cet environnement est principalement utilisé pour la récupération de système, l'isolement des environnements de développement et de test, et le sandboxing pour renforcer la sécurité.

Principaux domaines d'application

  • Récupération de système endommagé (par exemple, réinstallation du chargeur de démarrage, résolution de problèmes de paquets)
  • Isolement des environnements de développement et de test (compilation/exécution de logiciels sans affecter le système hôte)
  • Sandboxing pour renforcer la sécurité (limitation de l'accès au système de fichiers pour des applications spécifiques)
  • Compilation de paquets pour d'autres architectures (configuration d'un environnement de compilation croisée)

Options principales

La commande chroot prend comme arguments le nouveau répertoire racine et la commande à exécuter, et permet de contrôler son comportement avec quelques options supplémentaires.

Comportement de base et personnalisation

Informations et aide

Commande générée :

Essayez de combiner les commandes.

Description:

`chroot` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Explorez différentes manières de configurer un environnement isolé et d'exécuter des commandes en utilisant chroot. L'exécution de chroot nécessite généralement des privilèges root.

Entrer dans un environnement chroot de base

sudo chroot /mnt/my_root /bin/bash

Définit le répertoire `/mnt/my_root` comme nouveau répertoire racine et exécute le shell `/bin/bash` dans cet environnement. Avant d'exécuter cet exemple, assurez-vous que le répertoire `/mnt/my_root` existe et qu'il contient les fichiers système minimaux nécessaires (par exemple, `/bin/bash`).

Exécuter une commande spécifique dans chroot

sudo chroot /mnt/new_env ls -l /

Exécute la commande `ls -l /` dans le nouveau répertoire racine `/mnt/new_env`. Cette commande listera le contenu du répertoire racine à l'intérieur de `/mnt/new_env`.

Personnaliser l'environnement chroot

sudo chroot --userspec=testuser:testgroup /mnt/chroot_jail /bin/bash

Entrez dans l'environnement `/mnt/chroot_jail` avec les privilèges de l'utilisateur `testuser` et du groupe `testgroup` pour exécuter le shell `/bin/bash`. Cet utilisateur/groupe doit exister dans l'environnement chroot.

Conseils et précautions

Conseils et points à considérer pour utiliser l'environnement chroot de manière efficace et sécurisée.

Points de montage essentiels

Pour que de nombreux utilitaires système fonctionnent correctement dans l'environnement chroot, certains systèmes de fichiers virtuels de l'hôte doivent être montés en bind à l'intérieur de l'environnement chroot.

  • /proc: Accès aux informations sur les processus et aux configurations système
  • /sys: Accès aux informations sur le noyau et le matériel
  • /dev: Accès aux fichiers de périphériques (par exemple, terminaux, disques)
  • /dev/pts: Support des terminaux virtuels (essentiel pour l'utilisation du shell)

Bibliothèques et fichiers exécutables

Les commandes que vous souhaitez exécuter dans l'environnement chroot doivent avoir tous les fichiers exécutables et bibliothèques dynamiques (shared libraries) nécessaires présents dans cet environnement. Sinon, vous pourriez rencontrer des erreurs telles que 'command not found' ou 'No such file or directory'. Vous pouvez utiliser la commande `ldd` pour vérifier les bibliothèques requises.

Privilèges root requis

La commande chroot modifie le répertoire racine du système, elle doit donc impérativement être exécutée avec les privilèges root (sudo).

Sortir de l'environnement chroot

En tapant la commande `exit` dans le shell exécuté dans l'environnement chroot, vous pouvez revenir au shell d'origine sur le système hôte.

Précautions de sécurité

chroot n'est pas un mécanisme d'isolation de sécurité parfait. Il existe plusieurs méthodes pour qu'un utilisateur disposant des privilèges root puisse s'échapper de l'environnement chroot. Si une isolation plus robuste est nécessaire, envisagez des technologies de conteneurisation (Docker, LXC) ou des machines virtuelles.


Commandes de la même catégorie