Странное поведение с пространством имен монтирования Apache2 на Raspbian

В настоящее время я пытаюсь понять, почему Apache2 (2.4.25-3 + deb9u2) работает на Raspbian Stretch (Linux raspberrypi 4.9 .41-v7 + # 1023 SMP Вт, 8 августа 16:00:15 BST 2017 armv7l (GNU / Linux) имеет другое представление о корневой точке монтирования, чем, например, bash.

cat / proc / {PID Apache2} / mountinfo дает следующий результат:

129 127 179:2 / / ro,noatime shared:80 master:1 - ext4 /dev/root ro,data=ordered

cat / proc / self / mountinfo , выполненный из bash, дает следующий результат:

15 0 179:2 / / ro,noatime shared:1 - ext4 /dev/root ro,data=ordered

Насколько я понимаю поняли объяснения от man 7 mount_namespaces , https://lwn.net/Articles/689856/ , https://lwn.net/Articles/690679/ и man 5 proc вывод говорит мне, что Apache является подчиненным для группы одноранговых узлов 1. Он сам создал общую одноранговую группу с идентификатором 80.

Я не понимаю, почему что происходит. Я думал, что systemd контролирует это, и поэтому создал файл /etc/systemd/system/apache2.service со следующим содержанием:

.include /lib/systemd/system/apache2.service

[Service]
MountFlags=shared

Но, очевидно, это не помогло. Также нет никакой разницы, когда я удаляю строку MountFlags.

Итак, чтобы понять, почему ситуация такая, я хотел бы знать, есть ли способ предотвратить превращение Apache в подчинение корневой монтируемой одноранговой группы.

Кроме того, если я перемонтирую корневой каталог, чтобы он был доступен для записи с помощью mount -o remount, rw / в bash, это не распространяется в пространство имен монтирования Apache2. Пример, начиная с mountinfo сверху:

# 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

Является ли это частью какой-либо функции безопасности Apache?

Обновление 1. Если я (повторно) запускаю службу Apache2, когда root установлен rw, remounts будут перенесены в пространство имен монтирования Apache2. Только если служба Apache2 запущена, а root - ro, она не работает ?!

0
16.10.2017, 18:21
1 ответ

Elimine la configuración PrivateTmp=trueen apache2.service.

https://www.freedesktop.org/software/systemd/man/systemd.exec.html:

If true, sets up a new file system namespace for the executed processes and mounts private /tmp and /var/tmp directories inside it that is not shared by processes outside of the namespace.

0
28.01.2020, 04:37

Теги

Похожие вопросы