FreeBSD otomatik ayracını küçük parçalara ayıracağım ve onları yağda kaynatıyorum


40

Bir dizi ev dizini hiyerarşisini birkaç FreeBSD hapishanesine maruz bırakmaya çalışıyorum. Giriş dizinleri, her biri benzersiz bir ZFS veri kümesi olacak şekilde yapılandırılmıştır. Hapishaneler geliştirme çalışmaları için kullanılır ve bu nedenle düzenli olarak oluşturulur ve imha edilir.

İlk düşüncem, hapishanenin içine monte etmek için nullfs kullanmaktı /home, ama nullfs , alt dosya sistemlerine erişmek için hiçbir yol sağlamıyor.

İkinci düşüncem, dizinleri NFS aracılığıyla dışa aktarmak ve daha sonra her hapishanenin automounter arka planını (amd) çalıştırmaktı. Bu, Just Worked olurdu ... bir hapishanede NFS montajı yapmak mümkün olsaydı. Ama değil.

Üçüncü düşüncem, hostta amd çalıştırmak ve nullfların hapishanelere takılı kalmasını sağlamaktı ... ama nullf'lara destek yok.

Dördüncü düşüncem, elbette NFS ile çalıştığından, NFS kullanarak dizinleri ihraç etmeye geri dönmek oldu, değil mi? Ne yazık ki, hedef bağlama noktasına bir dizin yerleştirmek yerine, şeyleri geçici bir yere ( /.amd_mnt/...) yerleştirmeyi ve daha sonra elbette hapishane ortamında yararsız olan bir sembolik bağlantı oluşturmayı sever .

Öyleyse , hapishanenin bir alt dizinini göstermek için nullfs kullanabilirsin /.amd_mnt? Hayır! Bu bizi ilk denememe geri getiriyor, ki burada nullfs kullanarak alt dosya sistemlerine erişmenin bir yolu yok .

Sonra kafam patladı.

Yapmaya çalıştığım şey için iyi bir çözüm var mı? Bir kötü çözüm birden yaratacak hapis önyükleme sonra bir komut dosyası çalıştırmak olacaktır nullfs her ev dizini için Mountpoints, ama bu oldukça aksak - bu hesaba yeni dizinleri veya kaldırılmış dizinleri almak için periyodik çalıştırılması gerekir. Bu yüzden temelde kötü bir otomatik yazar yazmak zorunda kalacağım.

Daha iyi bir yol olmalı. Yardım et, Serverfault, tek umudumsun!

GÜNCELLEME 1 : Sorunun bir kısmını çözebildiğim için pam_mount, en azından eksik olsa da , bana geldi . Ayrıca, belgelerde pam_mount, hedef bağlama noktasını otomatik olarak oluşturup oluşturamayacağı belli değildir . Bağlama noktasının bir öncül varolmasını gerektiriyorsa, bu çözüm zaten önerdiğim kötü otomatörden daha iyi olamazdı.

GÜNCELLEME 2 : Aşağıdaki cevaplarda tartışıldığı gibi, VFCF_JAILNFS dosya sistemini ayarlamak , hapishanelerin NFS montajları yapmasına izin verir. Maalesef, otomatik makine yardımcısı olmayan davranmaya devam ediyor ve bir hapishanede çalıştırıldığında işlem girişini kaldırmak için sistemin yeniden başlatılması gerekecek şekilde sıkılmakta çok iyi görünüyor.


1
Ve bu özellikleri FreeBSD'ye aktarmaya istekliysen, bu harika olurdu. Cidden, standart Linux otomatik düzenleyicisinin davranışı bunun için de mükemmel olurdu çünkü aslında dosya bağlarını, sembolik bağlar kullanmak yerine hedef bağlama noktasına monte ediyor.
larsks

4
Ciddi bir zaman eksikliğini suçluyorum. Ve belki de sadece biraz motivasyon eksikliği ...>.>
Ignacio Vazquez-Abrams

15
+1 Sadece harika başlık için. :)
Shauna,

4
Özel uygulama yönteminizin ne kadar spesifik olduğu ile ilgilidir
Mark Henderson

2
Oh, @Wilshire, hiç eğlenceli değilsin.
larsks

Yanıtlar:


26

Neden merhaba, Lars! Bu sorduğunuz büyüleyici bir soru ve bazı araştırmalardan sonra sizin için bir cevap bulmuş olabilirim.

Göre bu orada ve diğer mesajlar, ayarlamak mümkün olabilir VFCF_JAIL teoride hapishaneler NFS bağlantılarını gerçekleştirmek için izin verecek NFS dosya sistemi sağlayıcısına niteliği. Bu da, birisinin hapishanenin içine girmesine izin verebilir ... bu da sorunu çözer.

İşlerin nasıl yürüdüğünü görmek için bu akşam çekirdeği yeniden inşa etmeye çalışacağım. Mutlaka en büyük çözüm değil (bu değişikliğin gelecekteki çekirdek güncellemeleri arasında sürdüğünden emin olmanız gerektiği anlamına gelir), ancak işe yararsa ilginç olur.

Ve Hatırla...

           ___________    ____                                           
    ______/   \__//   \__/____\                             
  _/   \_/  :           //____\\                             
 /|      :  :  ..      /        \                         
| |     ::     ::      \        /                             
| |     :|     ||     \ \______/     Don't try to rebuild the
| |     ||     ||      |\  /  |        kernel remotely because
 \|     ||     ||      |   / | \         you know you're just
  |     ||     ||      |  / /_\ \        going to hose the server.
  | ___ || ___ ||      | /  /    \    
   \_-_/  \_-_/ | ____ |/__/      \   
                _\_--_/    \      /   
               /____             /  
              /     \           /    
              \______\_________/     

6
Sağol Lars; Tavsiyenizi almış olsaydım, çünkü şimdi sunucuya erişemiyorum ve bunu denemek için eve gelene kadar beklemem gerekecek.
larsks

10
LOL'ler için +1. Ayrıca bunun bir geçiş hakkı olduğunu düşünün - KERNEL.OLD (veya KERNEL.GENERIC'i önyüklemek için gecenin ortasında sunucunuza sürün - Sisteminizde güncel bir GENERIC tutuyorsunuz değil mi? başlamalıdır.) birçok ders
çıkarır

Net-boot bir mfsbsd kopyası da elimde tutuyor ve bu da beni bir kaç önyükleyici ile ilgili sorunlardan kurtardı.
larsks

1
Ayarlama VFCF_JAILNFS bağlantılarının çalışmasına neden oldu, ancak otomatik ayırıcı beni yatağa atmaya devam ediyor.
larsks

1
Eh, çeşitli ortamlarda on yıldan daha uzun bir süredir ev dizinleri için automount kullanıyorum ve bundan mutlu oldum. Unutmayın, bu Linux (ve Solaris) otomatiğidir, amd değil.
larsks
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.