Sto cercando di esporre una gerarchia di home directory a un certo numero di jail FreeBSD. Le home directory sono configurate in modo tale che ognuna sia un set di dati ZFS univoco. Le prigioni sono utilizzate per il lavoro di sviluppo e quindi vengono create e distrutte su base regolare.
Il mio primo pensiero è stato semplicemente quello di utilizzare nullfs per montare /home
all'interno della prigione, ma nullfs non fornisce alcun modo per accedere a filesystem subordinati.
Il mio secondo pensiero è stato quello di esportare le directory tramite NFS e quindi eseguire il demone automounter (amd) all'interno di ogni prigione. Questo avrebbe funzionato ... se fosse possibile eseguire montaggi NFS all'interno di una prigione. Ma non lo è.
Il mio terzo pensiero era di eseguire amd sull'host e predisporre montaggi nullfs nelle jail ... ma il supporto amd per nullfs non esiste.
Il mio quarto pensiero era di tornare ad esportare le directory usando NFS, perché ovviamente amd funziona con NFS, giusto? Sfortunatamente, piuttosto che montare una directory sul mountpoint di destinazione, ad amd piace montare le cose in una posizione temporanea ( /.amd_mnt/...
) e quindi creare un collegamento simbolico ... che, ovviamente, è inutile all'interno dell'ambiente jail.
Quindi forse potresti usare nullfs per esporre una sottodirectory della /.amd_mnt
prigione? No! Questo ci riporta al mio primo tentativo, in cui troviamo che non c'è modo di accedere a filesystem subordinati usando nullfs .
E poi la mia testa è esplosa.
C'è una buona soluzione per quello che sto cercando di fare? Una cattiva soluzione sarebbe quella di eseguire uno script dopo l'avvio del jail che creerebbe più mountpoint nullfs per ogni home directory, ma questo è piuttosto ingombrante - dovrebbe essere eseguito periodicamente per tener conto di nuove directory o directory rimosse. Quindi in pratica avrei dovuto scrivere un cattivo automounter.
Deve esserci un modo migliore. Aiutami, Serverfault, sei la mia unica speranza!
AGGIORNAMENTO 1 : Mi è venuto in mente che avrei potuto risolvere una parte del problema pam_mount
, sebbene nella migliore delle ipotesi ciò sarebbe incompleto. Inoltre, dalla documentazione non è chiaro se sia pam_mount
possibile creare automaticamente il mountpoint di destinazione. Se richiede che il mountpoint esista a priori, questa soluzione non sarebbe migliore del cattivo automounter che ho già proposto.
AGGIORNAMENTO 2 : Come discusso nelle risposte seguenti, l'impostazione VFCF_JAIL
sul filesystem NFS consente alle jail di eseguire montaggi NFS. Sfortunatamente, l'automounter continua a comportarsi in modo non utile e quando viene eseguito in una prigione sembra essere molto bravo a essere incastrato in modo tale che è necessario un riavvio del sistema per rimuovere la voce del processo.