+@cindex chroot jail, fonctionnement
+@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
+Lance @command{lilypond} dans un environnement protégé.
+
+L'option @option{--jail} est une alternative qui offre plus de
+flexibilité que l'option @option{--safe} lorsque LilyPond est installé
+sur un serveur web ou traite des fichiers externes.
+
+L'option @option{--jail} va détourner la racine de @command{lilypond}
+sur @var{jail} juste avant d'effectuer la compilation à proprement
+parler. L'utilisateur et le groupe sont modifiés en conséquence, et le
+répertoire en cours devient @var{dir}. Ces réglages assurent -- du
+moins en théorie -- l'impossibilité de s'échapper de la cellule. Notez
+cependant que, pour que l'option @option{--jail} soit fonctionnelle,
+@command{lilypond} doit être lancé en tant qu'administrateur -- ce qui
+se réalise aisément à l'aide de la commande @command{sudo}.
+
+La création d'un environnement sécurisé requiert quelques précautions
+dans la mesure où LilyPond doit disposer de tout ce dont il a besoin
+pour compiler le fichier source @strong{à l'intérieur de la cellule}.
+L'ermitage, avant d'être viable, requiert donc les étapes
+suivantes@tie{}:
+
+@table @asis
+
+@item Création d'un système de fichiers indépendant
+L'intérêt d'un système de fichiers dédié à LilyPond réside dans le fait
+qu'on peut le brider à l'aide des options @code{noexec},@code{nodev} et
+@code{nosuid}. Il sera de fait impossible de lancer des exécutables ou
+d'écrire sur un périphérique à partir de LilyPond. Si vous n'avez pas
+l'intention de créer un tel système sur une partition séparée, vous
+pouvez avoir recours à un pseudo-périphérique (@emph{loop device}) monté
+à partir d'un simple fichier de taille raisonnable. D'autre part, le
+recours à un système de fichiers indépendant permet de limiter l'espace
+dévolu à LilyPond.
+
+@item Création d'un utilisateur spécifique
+L'utilisation de LilyPond au sein de la cellule devrait être réservé à
+un utilisateur aux droits restreints. Il faudra donc créer un
+utilisateur et un groupe spécifiques -- disons
+@w{@code{lily}/@code{lily}} -- qui n'aura accès en écriture qu'à un
+unique répertoire déterminé par la valeur de @var{dir}.
+
+@item Agencement des lieux
+LilyPond a besoin d'un certain nombre de fichiers pour pouvoir tourner
+correctement. Ces fichiers devront donc tous se retrouver dans
+l'environnement protégé, distribués selon la même arborescence que dans
+le système d'origine. Ainsi l'intégralité de l'installation de LilyPond
+(en principe @file{/usr/share/lilypond}) doit y être dupliquée.
+
+En cas de problème, lancer LilyPond en utilisant @command{strace}
+devrait vous permettre de déterminer quels fichiers manquent à l'appel.
+
+@item Lancement de LilyPond
+Dans un environnement protégé monté avec l'option @code{noexec}, il
+est impossible de lancer un quelconque programme extérieur. LilyPond ne
+saurait donc avoir recours à un moteur de traitement qui le mettrait
+dans cette situation. Comme nous l'avons vu plus haut, LilyPond sera
+lancé avec les privilèges de l'administrateur -- privilèges qu'il perdra
+aussitôt --, ce qui peut nécessiter le recours à la commande
+@code{sudo}. Il est par ailleurs judicieux de limiter le temps
+processeur aloué à LilyPond -- grâce à @command{ulimit@tie{}-t} par
+exemple -- ainsi que, si votre système le permet, la taille de la
+mémoire.
+@end table