Монтирование файловой системы для всех процессов из службы/веб-сервера

Монтирование файловой системы для всех процессов из службы/веб-сервера

Я пытаюсь создать локальный веб-сайт, который позволяет мне расшифровывать файл, монтировать содержащуюся в нем файловую систему и запускать службу systemd без доступа к консоли. Запущенная служба затем использует файлы в смонтированной файловой системе. Веб-сервер в настоящее время запускает мой код python через cgi для обслуживания простого веб-сайта для расшифровки и монтирования этой файловой системы. Я сделал исключения в файле sudoers для пользователя www-data, чтобы выполнять определенные команды, которые я вызываю в python.

Когда я расшифровываю файл с помощью этого веб-сайта (который вызывается cryptsetup luksOpen), расшифрованное устройство отображается так, как и ожидалось:

> file /dev/mapper/service-volume
/dev/mapper/service-volume: symbolic link to ../dm-0

Но когда мой код Python пытается смонтировать это, service-volumeон монтируется только внутри рабочего процесса Apache, недоступного для моей оболочки или других процессов (XXX — это PID рабочего процесса Apache):

> mountpoint /mnt/service-folder
/mnt/service-folder is not a mountpoint
> cat /proc/XXX/mounts
...
/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().

Итак, мои вопросы: Что там происходит? Это какая-то магия пространства имен/cgroups? И как можно смонтировать эту папку для другой службы/процесса, кроме самого apache?


Дополнительная информация:

Существует service-folder(без смонтированной файловой системы):

> ls -la /mnt/service-folder
total 8
drwxr-xr-x 2 root root 4096 Jan 23 21:25 .
drwxr-xr-x 4 root root 4096 Jan 23 21:25 ..

Связанный контент