ฉันพยายามที่จะเปิดเผยลำดับชั้นของโฮมไดเร็กตอรี่ถึงจำนวนของ FreeBSD jails โฮมไดเร็กตอรี่ได้รับการกำหนดค่าให้แต่ละชุดข้อมูลเป็น ZFS ที่ไม่ซ้ำใคร คุกใช้สำหรับงานพัฒนาดังนั้นจึงสร้างและทำลายอย่างสม่ำเสมอ
ความคิดแรกของฉันคือการใช้nullfsเพื่อติดตั้ง/home
ในคุก แต่nullfsไม่มีวิธีใดในการเข้าถึงระบบไฟล์รอง
ความคิดที่สองของฉันคือการส่งออกไดเรกทอรีผ่าน NFS แล้วเรียกใช้ automounter daemon (amd) ในแต่ละคุก สิ่งนี้จะมี Just Worked ... หากเป็นไปได้ที่จะทำการเมานต์ NFS ภายในคุก แต่มันไม่ใช่
ความคิดที่สามของฉันคือการเรียกใช้เอเอ็มดีในพื้นที่และการให้nullfsม้าเข้าไปในคุก ... แต่การสนับสนุนเอเอ็มดีสำหรับnullfsไม่อยู่
ความคิดที่สี่ของฉันคือกลับไปที่การส่งออกไดเรกทอรีโดยใช้ NFS เพราะแน่นอนว่า amd ทำงานกับ NFS ได้ใช่ไหม แต่น่าเสียดายที่แทนที่จะติดตั้งไดเรกทอรีในตำแหน่งเป้าหมายแล้วเอเอ็มดีชอบที่จะติดตั้งสิ่งต่าง ๆ ในตำแหน่งชั่วคราว ( /.amd_mnt/...
) แล้วสร้าง symlink ... ซึ่งแน่นอนว่าไม่มีประโยชน์อะไรในสภาพแวดล้อมของคุก
ดังนั้นบางทีคุณอาจใช้nullfsเพื่อเปิดเผยไดเรกทอรีย่อยของ/.amd_mnt
คุก? No! วิธีนี้จะทำให้เรากลับไปที่ความพยายามครั้งแรกของฉันในการที่เราจะพบว่ามีวิธีใดในการเข้าถึงระบบไฟล์ของผู้ใต้บังคับบัญชาใช้nullfs
แล้วหัวของฉันก็ระเบิด
มีวิธีแก้ปัญหาที่ดีสำหรับสิ่งที่ฉันพยายามทำหรือไม่? ไม่ดีวิธีการแก้ปัญหาที่จะเรียกใช้สคริปต์หลังจากบูตคุกที่จะสร้างหลายnullfs mountpoints ไดเรกทอรีแต่ละบ้าน แต่นี้เป็น clunky สวย - มันจะต้องมีการทำงานเป็นระยะ ๆ เพื่อนำเข้าบัญชีไดเรกทอรีใหม่หรือไดเรกทอรีที่ถูกลบ ดังนั้นโดยพื้นฐานแล้วฉันจะต้องเขียนตัวนับอัตโนมัติที่ไม่ดี
จะต้องมีวิธีที่ดีกว่า ช่วยฉัน Serverfault คุณเป็นความหวังเดียวของฉัน!
UPDATE 1 : มันเกิดขึ้นกับฉันว่าฉันอาจจะสามารถแก้ปัญหาบางส่วนได้pam_mount
แม้ว่าสิ่งนี้จะไม่สมบูรณ์ก็ตาม นอกจากนี้ยังไม่ชัดเจนจากเอกสารประกอบว่าpam_mount
จะสร้างจุดยึดเป้าหมายอัตโนมัติหรือไม่ หากต้องการให้ mountpoint มีอยู่ก่อนหน้าโซลูชันนี้จะไม่ดีไปกว่ารถยนต์ที่ฉันเคยเสนอมา
UPDATE 2 : ดังที่อธิบายไว้ในคำตอบด้านล่างการตั้งค่าVFCF_JAIL
บนระบบไฟล์ NFS จะอนุญาตให้ jails ดำเนินการเมาต์ NFS น่าเสียดายที่ automounter ยังคงทำงานที่ไม่ช่วยเหลือและเมื่อทำงานในคุกดูเหมือนจะดีมากที่ได้รับการประกันในลักษณะที่จำเป็นต้องรีบูตระบบเพื่อลบรายการกระบวนการ