Ich versuche, eine Hierarchie von Home-Verzeichnissen mehreren FreeBSD-Jails zugänglich zu machen. Die Basisverzeichnisse sind so konfiguriert, dass jedes ein eindeutiges ZFS-Dataset ist. Die Gefängnisse dienen der Entwicklungsarbeit und werden daher regelmäßig erstellt und vernichtet.
Mein erster Gedanke war, einfach nullfs zum Einhängen /home
in das Gefängnis zu verwenden, aber nullfs bietet keine Möglichkeit, auf untergeordnete Dateisysteme zuzugreifen.
Mein zweiter Gedanke war, die Verzeichnisse über NFS zu exportieren und dann den Automounter-Daemon (amd) in jedem Gefängnis auszuführen. Das hätte einfach funktioniert ... wenn es möglich wäre, NFS-Bereitstellungen in einem Gefängnis durchzuführen. Aber es ist nicht.
Mein dritter Gedanke war, amd auf dem Host auszuführen und nullfs in den Jails bereitzustellen ... aber es gibt keine amd-Unterstützung für nullfs .
Mein vierter Gedanke war, die Verzeichnisse wieder mit NFS zu exportieren, da amd natürlich mit NFS funktioniert, oder? Anstatt ein Verzeichnis auf dem Ziel-Mountpoint zu mounten, mountet amd die Dinge leider lieber an einem temporären Ort ( /.amd_mnt/...
) und erstellt dann einen Symlink ... was natürlich in der Jail-Umgebung nutzlos ist.
Vielleicht könnten Sie nullfs verwenden , um ein Unterverzeichnis von /.amd_mnt
für das Gefängnis freizugeben ? Nein! Dies bringt uns zu meinem ersten Versuch zurück, bei dem wir feststellen, dass es keine Möglichkeit gibt, mit nullfs auf untergeordnete Dateisysteme zuzugreifen .
Und dann explodierte mein Kopf.
Gibt es eine gute Lösung für das, was ich versuche? Eine schlechte Lösung wäre, nach dem Booten des Jails ein Skript auszuführen, das mehrere nullfs-Mountpunkte für jedes Ausgangsverzeichnis erstellt. Dies ist jedoch recht umständlich. Es müsste regelmäßig ausgeführt werden, um neue Verzeichnisse oder entfernte Verzeichnisse zu berücksichtigen. Im Grunde müsste ich also einen schlechten Automounter schreiben.
Es muss einen besseren Weg geben. Hilf mir, Serverfault, du bist meine einzige Hoffnung!
UPDATE 1 : Mir ist der Gedanke gekommen , dass ich möglicherweise einen Teil des Problems damit lösen kann pam_mount
, obwohl dies bestenfalls unvollständig wäre. Aus der Dokumentation geht auch nicht hervor, ob pam_mount
der Ziel-Mountpoint automatisch erstellt werden kann oder nicht . Wenn der Mountpoint von vornherein vorhanden sein muss, ist diese Lösung nicht besser als der schlechte Automounter, den ich bereits vorgeschlagen habe.
UPDATE 2 : Wie in den folgenden Antworten erläutert, VFCF_JAIL
können Jails NFS-Mounts durchführen, wenn sie das NFS-Dateisystem aktivieren. Unglücklicherweise verhält sich der Automounter weiterhin so, dass er nicht hilfreich ist. Wenn er in einem Gefängnis ausgeführt wird, scheint er sehr gut darin zu sein, sich so zu verkeilen, dass ein Neustart des Systems erforderlich ist, um den Prozesseintrag zu entfernen.