現在、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/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のスレーブであることを示します。独自に 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=true
apache2.serviceから設定を削除します。
https://www.freedesktop.org/software/systemd/man/systemd.exec.html:
trueの場合は、実行プロセスの新しいファイルシステム名前空間を設定し、その中にプライベート/ tmpおよび/ var / tmpディレクトリをマウントします。このディレクトリは、名前空間外のプロセスと共有されません。