ฉันกำลังพยายามสร้างเว็บไซต์ท้องถิ่นที่อนุญาตให้ฉันถอดรหัสไฟล์ ติดตั้งระบบไฟล์ที่มีอยู่ และเริ่มบริการ systemd โดยไม่ต้องเข้าถึงคอนโซล จากนั้นบริการที่เริ่มต้นจะใช้ไฟล์ภายในระบบไฟล์ที่เมาท์ ขณะนี้เว็บเซิร์ฟเวอร์รันโค้ดหลามของฉันผ่าน cgi เพื่อให้บริการเว็บไซต์อย่างง่ายในการถอดรหัสและติดตั้งระบบไฟล์นั้น ฉันทำข้อยกเว้นในไฟล์ sudoers สำหรับผู้ใช้ www-data เพื่อดำเนินการคำสั่งบางอย่างที่ฉันเรียกในไพ ธ อน
เมื่อฉันถอดรหัสไฟล์โดยใช้เว็บไซต์นี้ (ซึ่งเรียก cryptsetup luksOpen
) อุปกรณ์ที่ถอดรหัสจะปรากฏตามที่คาดไว้:
> ไฟล์ /dev/mapper/service-volume
/dev/mapper/service-volume: ลิงก์สัญลักษณ์ไปยัง ../dm-0
แต่เมื่อรหัสหลามของฉันพยายามเมานต์สิ่งนี้ ปริมาณการบริการ
ติดตั้งภายในกระบวนการของผู้ปฏิบัติงาน apache เท่านั้น ไม่พร้อมใช้งานสำหรับเชลล์หรือกระบวนการอื่น ๆ ของฉัน (XXX คือ PID ของกระบวนการผู้ปฏิบัติงาน apache):
> mountpoint /mnt/service-folder
/mnt/service-folder ไม่ใช่จุดเชื่อมต่อ
> แมว /proc/XXX/เมานต์
...
/dev/mapper/service-volume /mnt/service-folder ext4 rw,relatime 0 0
การดำเนินการเมานต์ที่ดำเนินการคือ sudo /bin/mount /dev/mapper/service-volume /mnt/service-folder
กับ pythons subprocess.run()
ดังนั้นคำถามของฉันคือ: เกิดอะไรขึ้นที่นั่น? นี่เป็นเนมสเปซ / กลุ่มกลุ่มมายากลหรือไม่? และจะเมานต์โฟลเดอร์นี้สำหรับบริการ / กระบวนการอื่นที่ไม่ใช่ apache ได้อย่างไร
ข้อมูลเพิ่มเติม:
เดอะ โฟลเดอร์บริการ
มีอยู่ (ไม่มีระบบไฟล์ที่เมาท์):
> ls -la /mnt/service-folder
รวม 8
drwxr-xr-x 2 รูทรูท 4096 23 ม.ค. 21:25 น.
drwxr-xr-x 4 รูท รูท 4096 23 ม.ค. 21:25 น.