chroot

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche

chroot (change root) est un appel système qui a également donné son nom à une commande des systèmes d'exploitation Unix permettant de changer le répertoire racine d'un processus de la machine hôte.

Histoire[modifier | modifier le code]

L'appel système chroot est introduit lors du développement de la version 7 d'Unix en 1979. Il est ajouté à BSD par Bill Joy le 18 mars 1982, 17 mois avant la sortie de BSD 4.2 pour tester et construire son système. Un premier usage de l'appellation jail pour enfermement de shell vient de Bill Cheswick en 1991 qui avait créé un honeypot pour surveiller un cracker. Carole Fennely décrit dans un article de janvier 1999 les premières méthodes d'évasion de jail[1]

En 2000, Freebsd étend le concept en fournissant la commande jail.

En 2002, Nicolas Boiteux rédige le premier article[2] décrivant la méthodologie pour créer un jail linux à partir de la commande chroot.

En 2003, l'utilisation plus répandu du chroot shell linux donne naissance aux plateformes Internet de microservices applicatives SaaS et PaaS avec une consommation facturée à l'usage des ressources du jail, prémisses du cloud, de la virtualisation système des serveurs, ainsi que des technologies renommées plus tard containers (tel que Docker).

En 2005, Sun introduit les conteneurs Solaris décrits comme des « chroots sous stéroïdes ».

En 2008, LXC (qui sera utilisé par Docker plus tard) utilise la terminologie de conteneur et gagne en popularité en 2013 suite à son inclusion dans le noyau Linux 3.8.

Objectif[modifier | modifier le code]

Cette commande permet d'isoler l'exécution d'un programme et d'éviter ainsi la compromission complète d'un système lors de l'exploitation d'une faille. Si un pirate utilise une faille présente sur l'application chrootée, il n'aura accès qu'à l'environnement isolé et non pas à l'ensemble du système d'exploitation. Cela permet donc de limiter les dégâts qu'il pourrait causer. Cet environnement est appelé un chroot jail en anglais, littéralement une prison.

Il permet également de faire tourner plusieurs instances d'un même ensemble de services ou démons sur la même machine hôte.

Par exemple, il est possible avec chroot d'exécuter des applications 32 bits sur un système 64 bits : il suffit pour cela d'avoir un sous-système qui intègre toutes les bibliothèques logicielles nécessaires ; chroot permet de se connecter à l'intérieur de ce sous-système et d'y exécuter les applications installées.

Outil GNU[modifier | modifier le code]

chroot est un outil GNU faisant partie de coreutils et plus précisément des shellutils.

Notes et références[modifier | modifier le code]

  1. « Summertime potluck », (consulté le 24 mars 2018)
  2. « Howto chrooter un shell », (consulté le 23 mars 2018)