]> git.ipfire.org Git - thirdparty/systemd.git/commit
nspawn: fix MS_SHARED mount propagation for userns containers
authorLennart Poettering <lennart@poettering.net>
Thu, 23 Jul 2020 09:13:44 +0000 (11:13 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 23 Jul 2020 15:08:39 +0000 (17:08 +0200)
commit2a2e78e969d9549502066af90217104461d908e6
tree333e167a9455756adc56cf273600b49cef1bd6e2
parentfe224669fb24ef25334eaa7a5805661283993246
nspawn: fix MS_SHARED mount propagation for userns containers

We want our OS trees to be MS_SHARED by default, so that our service
namespacing logic can work correctly. Thus in nspawn we mount everything
MS_SHARED when organizing our tree. We do this early on, before changing
the user namespace (if that's requested). However CLONE_NEWUSER actually
resets MS_SHARED to MS_SLAVE for all mounts (so that less privileged
environments can't affect the more privileged ones). Hence, when
invoking it we have to reset things to MS_SHARED afterwards again. This
won't reestablish propagation, but it will make sure we get a new set of
mount peer groups everywhere that then are honoured for the mount
namespaces/propagated mounts set up inside the container further down.
src/nspawn/nspawn.c