J'essaie d'exposer une hiérarchie de répertoires personnels à un certain nombre de prisons FreeBSD. Les répertoires personnels sont configurés de telle sorte que chacun d'entre eux est un jeu de données ZFS unique. Les jails sont utilisés pour le travail de développement et sont donc créés et détruits régulièrement.
Ma première idée était simplement d'utiliser nulles à monter /home
à l'intérieur de la prison, mais nulles ne fournit aucun moyen d'accéder aux systèmes de fichiers subordonnés.
Ma deuxième idée était d'exporter les répertoires via NFS et de lancer le démon automonteur (amd) dans chaque jail. Cela aurait pu fonctionner... s'il était possible d'effectuer des montages NFS dans un jail. Mais ce n'est pas le cas.
Ma troisième idée était de faire tourner amd sur l'hôte et de provisionner nulles montages dans les prisons...mais le support d'amd pour les nulles n'existe pas.
Ma quatrième idée était de revenir à l'exportation des répertoires en utilisant NFS, parce que bien sûr amd fonctionne avec NFS, non ? Malheureusement, plutôt que de monter un répertoire sur le point de montage cible, amd aime monter les choses dans un emplacement temporaire ( /.amd_mnt/...
) et ensuite créer un lien symbolique... ce qui, bien sûr, est inutile dans l'environnement jail.
Vous pourriez donc utiliser nulles pour exposer un sous-répertoire de /.amd_mnt
à la prison ? Non ! Cela nous ramène à ma première tentative, dans laquelle nous constatons qu'il n'y a aucun moyen d'accéder à des systèmes de fichiers subordonnés à l'aide de nulles .
Et puis ma tête a explosé.
Existe-t-il une bonne solution pour ce que j'essaie de faire ? A mauvais La solution serait d'exécuter un script après le démarrage de la jail qui créerait de multiples nulles mountpoints pour chaque répertoire personnel, mais c'est assez lourd -- il faudrait l'exécuter périodiquement pour prendre en compte les nouveaux répertoires ou les répertoires supprimés. Donc, en gros, je devrais écrire un mauvais automonteur.
Il doit y avoir un meilleur moyen. Aide-moi, Serverfault, tu es mon seul espoir !
MISE À JOUR 1 : Il m'est venu à l'esprit que je pourrais peut-être résoudre une partie du problème avec pam_mount
bien que cela soit au mieux incomplet. De plus, la documentation n'indique pas clairement si oui ou non pam_mount
peut créer automatiquement le point de montage cible. S'il faut que le point de montage existe a priori, cette solution ne serait pas meilleure que le mauvais compteur automatique que j'ai déjà proposé.
MISE À JOUR 2 : Comme indiqué dans les réponses ci-dessous, la mise VFCF_JAIL
sur le système de fichiers NFS permet aux jails d'effectuer des montages NFS. Malheureusement, le compteur automatique continue à se comporter de manière peu utile, et lorsqu'il est exécuté dans une prison, il semble très doué pour se coincer de telle sorte qu'un redémarrage du système est nécessaire pour supprimer l'entrée du processus.