Montar un sistema de archivos para todos los procesos desde un servicio/servidor web

Montar un sistema de archivos para todos los procesos desde un servicio/servidor web

Estoy intentando crear un sitio web local que me permita descifrar un archivo, montar el sistema de archivos que contiene e iniciar un servicio systemd sin acceder a la consola. Luego, el servicio iniciado utiliza los archivos dentro del sistema de archivos montado. Actualmente, el servidor web ejecuta mi código Python a través de cgi para ofrecer un sitio web simple para descifrar y montar ese sistema de archivos. Hice excepciones en el archivo sudoers para que el usuario www-data ejecute ciertos comandos que llamo en Python.

Cuando descifro el archivo usando este sitio web (que llama cryptsetup luksOpen), el dispositivo descifrado aparece como se esperaba:

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

Pero cuando mi código Python intenta montar esto, service-volumesolo se monta dentro del proceso de trabajo de Apache, no disponible para mi shell u otros procesos (XXX es el PID del proceso de trabajo de 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

La operación de montaje ejecutada es sudo /bin/mount /dev/mapper/service-volume /mnt/service-foldercon pythons subprocess.run().

Entonces mis preguntas son: ¿Qué está pasando allí? ¿Es esta alguna magia de espacio de nombres/grupos c? ¿Y cómo se puede montar esta carpeta para otro servicio/proceso que no sea el propio Apache?


Información adicional:

Existe service-folder(sin el sistema de archivos montado):

> 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 ..

información relacionada