Montando um sistema de arquivos para todos os processos de dentro de um serviço/servidor web

Montando um sistema de arquivos para todos os processos de dentro de um serviço/servidor web

Estou tentando criar um site local que me permita descriptografar um arquivo, montar seu sistema de arquivos contido e iniciar um serviço systemd sem acessar o console. O serviço iniciado usa os arquivos do sistema de arquivos montado. O servidor web atualmente executa meu código python via cgi para servir um site simples para descriptografar e montar esse sistema de arquivos. Fiz exceções no arquivo sudoers para o usuário www-data executar determinados comandos que chamo em python.

Quando descriptografo o arquivo usando este site (que chama cryptsetup luksOpen), o dispositivo descriptografado aparece conforme o esperado:

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

Mas quando meu código python tenta montar isso, service-volumeele só é montado dentro do processo de trabalho do Apache, indisponível para meu shell ou outros processos (XXX é o PID do processo de trabalho do 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

A operação de montagem executada é sudo /bin/mount /dev/mapper/service-volume /mnt/service-foldercom pythons subprocess.run().

Então, minhas perguntas são: o que está acontecendo lá? Isso é alguma mágica de namespace/cgroups? E como essa pasta pode ser montada para outro serviço/processo diferente do próprio Apache?


Informações adicionais:

Existe service-folder(sem o sistema de arquivos 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 ..

informação relacionada