Я пытаюсь раскрыть иерархию домашних каталогов для нескольких тюрем FreeBSD. Домашние каталоги настроены так, что каждый является уникальным набором данных ZFS. Тюрьмы используются для разработки и, следовательно, создаются и уничтожаются на регулярной основе.
Моей первой мыслью было просто использовать nullfs для монтирования /home
внутри тюрьмы, но nullfs не предоставляет никакого способа доступа к подчиненным файловым системам.
Моей второй мыслью было экспортировать каталоги через NFS, а затем запустить демон автомонтирования (amd) внутри каждой тюрьмы. Это было бы просто сработало ... если бы было возможно выполнить монтирование NFS внутри тюрьмы. Но это не так.
Моя третья мысль состояла в том, чтобы запустить amd на хосте и обеспечить монтирование nullfs в тюрьмы ... но поддержки amd для nullfs не существует.
Моей четвертой мыслью было вернуться к экспорту каталогов с использованием NFS, потому что, конечно, amd работает с NFS, верно? К сожалению, вместо того, чтобы монтировать каталог в целевой точке монтирования, amd любит монтировать вещи во временную папку ( /.amd_mnt/...
) и затем создавать символическую ссылку ... что, конечно, бесполезно в среде тюрьмы.
Так, может быть, вы могли бы использовать nullfs, чтобы открыть подкаталог /.amd_mnt
для тюрьмы? Нет! Это возвращает нас к моей первой попытке, в которой мы находим, что нет никакого способа получить доступ к подчиненным файловым системам, используя nullfs .
И тогда моя голова взорвалась.
Есть ли хорошее решение для того, что я пытаюсь сделать? Плохое решение было бы запустить скрипт после загрузки острог , который будет создавать несколько nullfs монтирования для каждого домашнего каталога, но это довольно неуклюжее - это нужно будет периодически запускать принимать во внимание новые каталоги или удаленные каталоги. Так что в принципе мне пришлось бы написать плохой автомонтир.
Должен быть лучший способ. Помоги мне, Serverfault, ты моя единственная надежда!
ОБНОВЛЕНИЕ 1 : Мне пришло в голову, что я мог бы решить часть проблемы pam_mount
, хотя это в лучшем случае будет неполным. Кроме того, из документации не ясно, pam_mount
может ли автоматически создать целевую точку монтирования. Если для этого требуется, чтобы точка монтирования существовала априори, это решение не было бы лучше, чем плохой автомонтировщик, который я уже предлагал.
ОБНОВЛЕНИЕ 2 : Как обсуждалось в ответах ниже, настройка VFCF_JAIL
файловой системы NFS позволяет джейлам выполнять монтирование NFS. К сожалению, автомонтер продолжает вести себя бесполезно, и при запуске в тюрьме он очень хорошо справляется с блокировкой таким образом, что для удаления записи процесса необходима перезагрузка системы.
Ответы:
Привет, Ларс! Это интересный вопрос, который вы задали, и после некоторых исследований я, возможно, нашел для вас ответ.
Согласно этой и другим публикациям, возможно, можно установить
VFCF_JAIL
атрибут поставщика файловой системы NFS, который теоретически позволил бы тюрьмам выполнять монтирование NFS. Это может, в свою очередь, позволить запустить amd внутри тюрьмы ... что бы аккуратно решить эту проблему.Я попытаюсь пересобрать ядро этим вечером, чтобы посмотреть, как все получится. Это не обязательно самое лучшее решение (поскольку это означает, что вам нужно убедиться, что это изменение сохранится в будущих обновлениях ядра), но было бы интересно, если бы оно работало.
И помни...
источник
VFCF_JAIL
заставила работать NFS-монтирования, но автомонтирование продолжает приставать ко мне.