Sur les systèmes de type UNIX, chroot permet de créer un environnement d'exécution isolé du reste du système ou d'isoler un utilisateur. Riche en possibilités, chroot n'est toutefois pas une panacée car il présente aussi des faiblesses. Tour d'horizon sous Linux.
Un administrateur d'un système Linux, par définition un peu paranoïaque, aura à coeur de faire en sorte d'éviter que les utilisateurs du système puissent faire n'importe quoi. La méthode la plus efficace est de leur interdire de se connecter au système, mais il est parfois des situations qui obligent à faire de petites concessions. Dans ce cas, chroot est une bonne possibilité. chroot, comme son nom l'indique (CHange ROOT) change la racine apparente du système de fichier pour le processus courant, ainsi que pour ses enfants. Il s'agit d'un utilitaire Shell construit autour de l'appel système de même nom chroot. Lors de la connexion d'un utilisateur, si le Shell de celui-ci invoque chroot, l'utilisateur va se retrouver dans un environnement que l'on appelle une prison (ou jail). Dans cet environnement, il ne pourra utiliser que les commandes qui sont à sa disposition, et non plus toutes les commandes du système. Il existe d'autres utilisations également très intéressantes pour chroot. Par exemple cette commande permet de réparer un Linux abîmé, à partir d'un LiveCD. On peut aussi s'appuyer sur chroot, pour fournir un environnement de développement ou de test à un programmeur. Ainsi on s'assure qu'une application qui travaille avec des fichiers ne risque pas de détruire quelque chose d'important sur le système pendant sa phase de mise au point, puisqu'elle sera confinée dans sa prison. Il est même possible de mettre en place un environnement d'exécution 32 bits dans un système 64 bits. De nombreux services s'appuient quant à eux sur l'appel système chroot. Par exemple, les serveurs FTP ProFTPD ou PureFPTD chrootent les utilisateurs dans leurs répertoires de connexions, ce qui leur masque définitivement les fichiers auxquels ils ne doivent pas avoir accès. chroot, pour séduisant qu'il soit, présente aussi des faiblesses dont un administrateur doit absolument être conscient. Découvrons tout cela par la pratique.
Frédéric Mazué