Atualmente estou tentando entender por que o Apache2 (2.4.25-3 + deb9u2) em execução no Stretch Raspbian (Linux raspberrypi 4.9.41-v7 + # 1023 SMP ter 8 de agosto 16:00:15 BST 2017 armv7l GNU / Linux ) está tendo uma visão diferente do ponto de montagem da raiz do que, por exemplo, bash.
cat /proc/{PID of Apache2}/mountinfo
fornece a seguinte saída:
129 127 179:2 / / ro,noatime shared:80 master:1 - ext4 /dev/root ro,data=ordered
cat /proc/self/mountinfo
executado a partir do bash fornece a seguinte saída:
15 0 179:2 / / ro,noatime shared:1 - ext4 /dev/root ro,data=ordered
Tanto quanto eu entendi as explicações de man 7 mount_namespaces
, link , link e man 5 proc
a saída me diz que o Apache é um escravo do grupo de pares 1. Ele mesmo criou um grupo de pares compartilhado com o ID 80.
O que não entendo é por que isso acontece. Eu pensei que o systemd está no controle disso e então eu criei o arquivo /etc/systemd/system/apache2.service
com o seguinte conteúdo:
.include /lib/systemd/system/apache2.service
[Service]
MountFlags=shared
Mas obviamente isso não ajudou. Também não há diferença quando removo a linha MountFlags.
Então, ao lado de entender por que a situação é assim, gostaria de saber se existe alguma maneira de impedir que o Apache se torne um escravo do grupo de peers de montagem raiz.
Além disso, se eu remontar o diretório raiz para ser gravável por mount -o remount,rw /
no bash, isso não será propagado no namespace de montagem do Apache2. Exemplo, começando com o mountinfo
acima:
# mount -o remount,rw /
# cat /proc/self/mountinfo
15 0 179:2 / / rw,noatime shared:1 - ext4 /dev/root rw,data=ordered
# cat /proc/{PID of Apache2}/mountinfo
129 127 179:2 / / ro,noatime shared:80 master:1 - ext4 /dev/root rw,data=ordered
Esta parte de qualquer recurso de segurança do Apache?
Atualização 1: Se eu (re) iniciar o serviço Apache2 enquanto o root estiver montado rw, os remontamentos serão propagados para o namespace de montagem do Apache2. Somente se o serviço Apache2 for iniciado enquanto o root estiver ativo, isso não funcionará!!