Raspbian에서 Apache2 마운트 네임스페이스의 이상한 동작

Raspbian에서 Apache2 마운트 네임스페이스의 이상한 동작

현재 Raspbian Stretch(Linux raspberrypi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux)에서 실행되는 Apache2(2.4.25-3+deb9u2)에 문제가 있는 이유를 이해하려고 노력 중입니다. 루트 마운트 지점은 bash 등과 다르게 표시됩니다.

cat /proc/{PID of Apache2}/mountinfo다음과 같은 출력을 제공합니다.

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

cat /proc/self/mountinfoBash에서 실행하면 다음과 같은 출력이 제공됩니다.

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 procApache가 피어 그룹 1의 슬레이브임을 알려줍니다. 자체적으로 ID 80의 공유 피어 그룹을 생성합니다.

내가 이해하지 못하는 것은 왜 이런 일이 발생하는지입니다. 나는 systemd가 이것을 제어할 수 있다고 생각하여 /etc/systemd/system/apache2.service다음 내용으로 파일을 만들었습니다.

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

[Service]
MountFlags=shared

그러나 분명히 이것은 도움이 되지 않습니다. MountFlags 줄을 제거해도 차이가 없습니다.

따라서 이런 일이 발생하는 이유를 이해하는 것 외에도 Apache가 루트 설치 피어 그룹의 노예가 되는 것을 방지할 수 있는 방법이 있는지 알고 싶습니다.

또한 bash에서 쓰기 가능하도록 루트 디렉토리를 다시 마운트하면 mount -o remount,rw /이는 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: 루트가 rw로 마운트된 동안 Apache2 서비스를 (다시) 시작하면 다시 마운트가 Apache2 마운트 네임스페이스로 전파됩니다. 루트가 ro인 경우에만 Apache2 서비스를 시작하면 작동하지 않나요? !

답변1

PrivateTmp=trueapache2.service에서 설정을 삭제합니다 .

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

true인 경우 실행 프로세스에 대한 새 파일 시스템 네임스페이스를 설정하고 그 안에 프라이빗 /tmp 및 /var/tmp 디렉터리를 마운트합니다. 이 디렉터리는 네임스페이스 외부의 프로세스와 공유되지 않습니다.

관련 정보