Saya mencoba mengekspos hierarki direktori home ke sejumlah penjara FreeBSD. Direktori home dikonfigurasikan sedemikian rupa sehingga masing-masing merupakan dataset ZFS yang unik. Penjara digunakan untuk pekerjaan pengembangan dan karenanya dibuat dan dihancurkan secara teratur.
Pikiran pertama saya hanyalah menggunakan nullfs untuk dipasang /home
di dalam jail, tetapi nullfs tidak menyediakan cara apa pun untuk mengakses sistem file bawahan.
Pikiran kedua saya adalah mengekspor direktori melalui NFS dan kemudian menjalankan daemon automounter (amd) di dalam setiap penjara. Ini hanya akan berfungsi ... jika mungkin untuk melakukan mount NFS di dalam penjara. Tapi ternyata tidak.
Pikiran ketiga saya adalah menjalankan amd di host dan ketentuan nullfs mount ke penjara ... tetapi dukungan amd untuk nullfs tidak ada.
Pikiran keempat saya adalah kembali mengekspor direktori menggunakan NFS, karena tentu saja amd bekerja dengan NFS, kan? Sayangnya, daripada memasang direktori pada target mountpoint, amd suka me-mount sesuatu di lokasi sementara ( /.amd_mnt/...
) dan kemudian membuat symlink ... yang, tentu saja, tidak berguna di dalam lingkungan penjara.
Jadi mungkin Anda bisa menggunakan nullfs untuk mengekspos subdirektori /.amd_mnt
ke penjara? Tidak! Ini membawa kita kembali ke upaya pertama saya, di mana kami menemukan bahwa tidak ada cara untuk mengakses sistem file bawahan menggunakan nullfs .
Dan kemudian kepala saya meledak.
Apakah ada solusi yang baik untuk apa yang saya coba lakukan? Sebuah buruk solusi akan menjalankan script setelah boot penjara yang akan membuat beberapa nullfs mountpoints untuk setiap direktori rumah, tapi ini cukup kikuk - itu akan perlu dijalankan secara berkala untuk memperhitungkan direktori baru atau direktori dihapus. Jadi pada dasarnya saya harus menulis automounter yang buruk.
Pasti ada cara yang lebih baik. Bantu aku, Serverfault, kau satu-satunya harapanku!
UPDATE 1 : Terpikir oleh saya bahwa saya mungkin dapat menyelesaikan sebagian dari masalah dengan pam_mount
, meskipun ini paling tidak akan lengkap. Juga, tidak jelas dari dokumentasi apakah pam_mount
dapat secara otomatis membuat target mountpoint atau tidak . Jika memerlukan mountpoint untuk menjadi apriori, solusi ini tidak akan lebih baik daripada automounter buruk yang telah saya usulkan.
UPDATE 2 : Seperti dibahas dalam jawaban di bawah ini, pengaturan VFCF_JAIL
pada sistem file NFS memang memungkinkan penjara untuk melakukan mount NFS. Sayangnya, automounter terus berperilaku yang tidak membantu, dan ketika dijalankan di penjara tampaknya sangat baik dalam mendapatkan terjepit sedemikian rupa sehingga sistem reboot diperlukan untuk menghapus entri proses.
Jawaban:
Kenapa, halo di sana Lars! Itu pertanyaan menarik yang Anda ajukan, dan setelah beberapa penelitian saya mungkin menemukan jawaban untuk Anda.
Menurut posting ini dan lainnya di luar sana, dimungkinkan untuk mengatur
VFCF_JAIL
atribut pada penyedia sistem file NFS, yang secara teori memungkinkan penjara untuk melakukan mount NFS. Hal ini, pada gilirannya, memungkinkan seseorang untuk menjalankan amd di dalam penjara ... yang akan menyelesaikan masalah ini dengan rapi.Saya akan mencoba membangun kembali kernel malam ini untuk melihat bagaimana semuanya berjalan. Ini belum tentu solusi terbaik (karena itu berarti Anda harus memastikan perubahan ini tetap ada di seluruh pembaruan kernel di masa depan), tetapi akan menarik jika berhasil.
Dan ingatlah...
sumber
VFCF_JAIL
membuat NFS mount berfungsi, tetapi automounter terus mengganggu saya.