Próbuję udostępnić hierarchię katalogów domowych niektórym więzieniom FreeBSD. Katalogi domowe są skonfigurowane w taki sposób, że każdy jest unikalnym zestawem danych ZFS. Więzienia są wykorzystywane do prac rozwojowych, a zatem są regularnie tworzone i niszczone.
Moją pierwszą myślą było po prostu użycie nullfs do zamontowania /home
w więzieniu, ale nullfs nie zapewnia żadnego dostępu do podległych systemów plików.
Moją drugą myślą było wyeksportowanie katalogów przez NFS, a następnie uruchomienie demona automountera (amd) wewnątrz każdego więzienia. To działałoby po prostu ... gdyby można było wykonać montowanie NFS w więzieniu. Ale nie jest.
Moją trzecią myślą było uruchomienie amd na hoście i zapewnienie zainstalowania nullfs w więzieniu ... ale wsparcie dla nullfs nie istnieje.
Moją czwartą myślą było wrócić do eksportowania katalogów przy użyciu NFS, ponieważ oczywiście czy działa z NFS, prawda? Niestety, zamiast montować katalog na docelowym punkcie montowania, amd lubi montować rzeczy w tymczasowej lokalizacji ( /.amd_mnt/...
), a następnie utworzyć dowiązanie symboliczne ... co oczywiście jest bezużyteczne w środowisku więziennym.
Więc może mógłbyś użyć nullfs do ujawnienia podkatalogu /.amd_mnt
więzienia? Nie! To sprowadza nas z powrotem do mojej pierwszej próby, w której okazuje się, że nie ma sposobu na dostęp do podrzędnych systemów plików za pomocą nullfs .
I wtedy moja głowa eksplodowała.
Czy istnieje dobre rozwiązanie tego, co próbuję zrobić? Złym rozwiązaniem byłoby uruchomić skrypt po załadowaniu więzienia, które tworzenia wielu nullfs punkty montowania dla każdego katalogu domowym, ale jest to dość niezgrabne - musiałaby być okresowo uruchamiać w celu uwzględnienia nowych katalogów lub usunięty katalogów. Zasadniczo musiałbym napisać zły automounter.
Musi być lepszy sposób. Pomóż mi, błąd serwera, jesteś moją jedyną nadzieją!
AKTUALIZACJA 1 : Przyszło mi do głowy, że mogę być w stanie rozwiązać część problemu pam_mount
, chociaż w najlepszym razie byłoby to niepełne. Ponadto z dokumentacji nie wynika jasno, czy pam_mount
można automatycznie utworzyć docelowy punkt montowania. Jeśli wymaga on, aby punkt montowania istniał a priori, to rozwiązanie nie byłoby lepsze niż zły automounter, który już zaproponowałem.
AKTUALIZACJA 2 : Jak omówiono w odpowiedziach poniżej, ustawienie VFCF_JAIL
w systemie plików NFS pozwala więziom na wykonywanie podłączeń NFS. Niestety automounter nadal zachowuje się, co jest nieprzydatne, a kiedy działa w więzieniu, wydaje się bardzo dobry w zaklinowaniu się w taki sposób, że konieczne jest ponowne uruchomienie systemu, aby usunąć wpis procesu.
Odpowiedzi:
Cześć, Lars! To fascynujące pytanie, które zadałeś i po kilku badaniach mogłem znaleźć dla ciebie odpowiedź.
Zgodnie z tym i innymi postami istnieje możliwość ustawienia
VFCF_JAIL
atrybutu na dostawcę systemu plików NFS, co teoretycznie pozwoliłoby więzienom na wykonywanie montowań NFS. To z kolei może pozwolić na ucieczkę do więzienia ... co dobrze rozwiązałoby ten problem.Spróbuję odbudować jądro tego wieczoru, aby zobaczyć, jak wszystko się ułoży. Niekoniecznie jest to najlepsze rozwiązanie (ponieważ oznacza, że musisz upewnić się, że ta zmiana będzie się utrzymywać w przyszłych aktualizacjach jądra), ale byłoby interesujące, gdyby zadziałało.
I pamiętaj...
źródło
VFCF_JAIL
sprawiło, że montowania NFS działały, ale automounter nadal mnie męczy.