CHROOT |
Change la racine |
|---|---|
Perl |
Syntaxe
| chroot |
| chroot expression |
Paramètres
| Nom | Description |
|---|---|
| expression | Ce paramètre permet d'indiquer une expression à traiter. Lorsque se paramètre est omis, la variable «$_» est utilisé. |
Retour
| Valeur | Description |
|---|---|
| 0 | Cette valeur permet d'indiquer que l'opération a échoué. |
| 1 | Cette valeur permet d'indiquer que l'opération a réussi. |
Description
Cette fonction permet de changer le répertoire racine virtuel.
Remarques
- Restriction d'utilisation au superutilisateur : La fonction chroot nécessite les privilèges élevés (root ou administrateur) pour s'exécuter avec succès. Cela est dû au fait qu'elle modifie profondément la perception du système de fichiers pour le processus, ce qui pourrait poser de graves risques de sécurité si elle était accessible à n'importe quel utilisateur.
- Isolation du processus dans un environnement restreint : chroot crée une sorte de bac à sable (sandbox) en changeant le répertoire racine apparent du processus. Après appel, tout chemin absolu (commençant par /) sera interprété à partir de ce nouveau répertoire racine, limitant ainsi l'accès à d'autres parties du système, ce qui est souvent utilisé pour des raisons de sécurité ou de confinement.
- Ne modifie pas le répertoire de travail courant : L'appel à chroot ne change pas le répertoire courant (working directory). Pour éviter des incohérences où le processus pourrait encore référencer un chemin en dehors de la nouvelle racine, il est obligatoire de faire un chdir("/") juste après pour se positionner correctement à la racine chrootée.
- Effet sur les processus enfants : Le changement de racine via chroot s'applique au processus courant ainsi qu'à tous ses processus enfants. Cela signifie que toute exécution ultérieure de commandes ou de scripts héritera de ce nouveau contexte, garantissant que les opérations restent confinées dans l'environnement restreint.
- Utilisation fréquente dans les environnements sécurisés : est souvent employée pour créer des environnements sécurisés ou contrôlés, par exemple dans les serveurs FTP, les serveurs web ou les environnements de test, où l'on souhaite limiter l'accès des services aux seuls fichiers nécessaires, protégeant ainsi le reste du système.
- Attention à la mise en place complète de l'environnement : Un simple appel à chroot ne suffit pas pour avoir un environnement fonctionnel. Il faut souvent copier ou monter dans la nouvelle racine les bibliothèques, binaires et fichiers nécessaires au fonctionnement des programmes, sous peine d'obtenir un système inutilisable ou incomplet.
- Comportement similaire à l'appel système Unix chroot : La fonction Perl chroot est un simple enveloppes autour de l'appel système Unix du même nom. Son comportement et ses restrictions sont donc strictement liés à ceux du système d'exploitation sous-jacent, ce qui implique que cette fonction n'est pas disponible ni opérationnelle sur tous les OS, notamment sous Windows.
- Retour d'état binaire simple : chroot retourne 1 en cas de succès, ou 0 en cas d'échec, sans fournir de détails supplémentaires directement. En cas d'erreur, il est possible de consulter la variable $! pour connaître la cause, comme un problème de permissions, de chemin invalide, ou d'autres erreurs système.
Exemple
Voici un exemple permet de changer le répertoire pour «/home/» :
Références
La Bible Micro Application HTML & Développement Web, Stefan Munz, Wolfgang Nefzger, 2003, ISBN: 2-7429-2898-7, page 1176
Dernière mise à jour : Dimanche, le 18 octobre 2015