Pourquoi dois-je utiliser chroot

13

Cette question chroot-jail-what-is-it-and-how-do-i-use-it fait référence à ce qui est et comment l'utiliser chroot.

Ce que je ne comprends pas, c'est pourquoi dois-je utiliser chroot. Je comprends ce qu'il fait, mais je ne peux pas penser à un cas où je dois l'utiliser, étant donné qu'il ne s'agit pas d'un mécanisme de sécurité ou d'un bac à sable, comme la réponse le souligne "vous ne devriez pas utiliser chrootcomme sécurité mesure pour empêcher un programme de modifier des fichiers en dehors de votre système de fichiers simulé ".

Plus précisément, pourquoi un certain processus doit-il mapper un sous-répertoire en tant que système de fichiers racine?

Alexandru Irimiea
la source
d'avoir plus de distributions dans un système de fichiers.
Ipor Sircer du
Qu'est-ce que ça veut dire?
Alexandru Irimiea
1
Bien que cela n'empêche pas un pirate déterminé de sortir de la prison, cela le rend plus difficile et empêchera presque certainement les accès accidentels .
Barmar
si vous souhaitez créer un nouveau système d'exploitation à partir de zéro, cela peut être utilisé pour configurer un nouvel environnement indépendant du système de fichiers hôte. jetez un oeil dans le projet LFS (linux à partir de zéro)
chenchuk

Réponses:

13

Il y a beaucoup de raisons d'utiliser un environnement chrooté, vous pouvez l'utiliser pour conserver différentes versions d'un programme, vous pouvez l'utiliser pour simuler un environnement spécifique afin de tester certaines fonctionnalités, pour créer des images d'un système différent de votre principal un, etc.

Wikipédia peut vous en dire plus sur les prisons chroot et ses usages.

De là:

Test et développement : un environnement de test peut être mis en place dans le chroot pour un logiciel qui serait autrement trop risqué pour être déployé sur un système de production.

Contrôle des dépendances : le logiciel peut être développé, construit et testé dans un chroot rempli uniquement avec ses dépendances attendues. Cela peut empêcher certains types de biais de liaison qui peuvent résulter de la création de projets par les développeurs avec différents ensembles de bibliothèques de programmes installés.

Compatibilité : les logiciels hérités ou les logiciels utilisant un ABI différent doivent parfois être exécutés dans un chroot car leurs bibliothèques ou fichiers de données de prise en charge peuvent sinon entrer en conflit de nom ou de liaison avec ceux du système hôte.

Récupération : si un système devient impossible à démarrer, un chroot peut être utilisé pour revenir dans l'environnement endommagé après l'amorçage à partir d'un autre système de fichiers racine (tel que depuis le support d'installation ou un Live CD).

Séparation des privilèges : les programmes sont autorisés à transporter des descripteurs de fichiers ouverts (pour les fichiers, les pipelines et les connexions réseau) dans le chroot, ce qui peut simplifier la conception de la prison en rendant inutile de laisser les fichiers de travail dans le répertoire chroot. Cela simplifie également la disposition courante d'exécution des parties potentiellement vulnérables d'un programme privilégié dans un bac à sable, afin de contenir de manière préventive une faille de sécurité. Notez que chroot n'est pas nécessairement suffisant pour contenir un processus avec des privilèges root.

Alberto Méndez
la source
3
Fondamentalement, si vous exécutez un ensemble de programmes qui veulent lire / écrire des choses spécifiques en place à partir de /, mais que vous ne voulez pas gâcher votre système existant, un chroot est utile même s'il est exécuté en tant que root (ce qui est inutile du point de vue de la sécurité). Il fonctionne comme un "redirecteur" qui tant que vous faites confiance au programme est utile.
LawrenceC