Tôi đang cố gắng tạo một trang web cục bộ cho phép tôi giải mã tệp, gắn hệ thống tệp chứa trong đó và bắt đầu dịch vụ systemd mà không cần truy cập bảng điều khiển. Sau đó, dịch vụ đã bắt đầu sử dụng các tệp trong hệ thống tệp được gắn kết. Máy chủ web hiện đang chạy mã python của tôi qua cgi để phục vụ một trang web đơn giản để giải mã và gắn hệ thống tệp đó. Tôi đã tạo ngoại lệ trong tệp sudoers cho người dùng dữ liệu www để thực thi một số lệnh nhất định mà tôi gọi trong python.
Khi tôi giải mã tệp bằng trang web này (gọi cryptsetup luksMở
) thiết bị được giải mã xuất hiện như mong đợi:
> tập tin /dev/mapper/service-volume
/dev/mapper/service-volume: liên kết tượng trưng tới ../dm-0
Nhưng khi mã python của tôi cố gắng gắn cái này khối lượng dịch vụ
nó chỉ được gắn trong quy trình công nhân apache, không khả dụng cho trình bao của tôi hoặc các quy trình khác (XXX là PID của quy trình công nhân apache):
> điểm gắn kết /mnt/thư mục dịch vụ
/mnt/service-folder không phải là điểm gắn kết
> mèo /proc/XXX/gắn kết
...
/dev/mapper/service-volume /mnt/service-folder ext4 rw,relatime 0 0
Hoạt động gắn kết được thực hiện là Sudo /bin/mount /dev/mapper/service-volume /mnt/service-folder
với pythons sub process.run().
Vì vậy, câu hỏi của tôi là: Điều gì đang xảy ra ở đó? Đây có phải là một số ma thuật không gian tên/cgroup không? Và làm cách nào thư mục này có thể được gắn cho một dịch vụ/quy trình khác ngoài chính apache?
Thông tin thêm:
Các thư mục dịch vụ
tồn tại (không có hệ thống tập tin được gắn kết):
> ls -la /mnt/thư mục dịch vụ
tổng số 8
drwxr-xr-x 2 gốc gốc 4096 ngày 23 tháng 1 21:25 .
drwxr-xr-x 4 root root 4096 Ngày 23 tháng 1 21:25 ..