[GIT PULL] namespaces related fixes for v4.11-rc1

Started by Eric W. Biederman on Feb 22, 2017 · 2 messages from 2 authors · Last reply Feb 22, 2017

open the first message on its own page

Message details and related content
Linus,

Please pull the for-linus branch from the git tree:

   git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git for-linus

   HEAD: ace0c791e6c3cf5ef37cad2df69f0d90ccc40ffb proc/sysctl: Don't grab i_lock under sysctl_lock.

This pull request is coming a few days into the merge window as just
before the merge window opened a bug was discovered in a change I had
merged so a little time was needed to verify and merge the fix.

There is a lot here.  A lot of these changes result in subtle user
visible differences in kernel behavior.  I don't expect anything will
care but I will revert/fix things immediately if any regressions show
up.
From Seth Forshee there is a continuation of the work to make the vfs
ready for unpriviled mounts.  We had thought the previous changes
prevented the creation of files outside of s_user_ns of a filesystem,
but it turns we missed the O_CREAT path.  Ooops.

Pavel Tikhomirov and Oleg Nesterov worked together to fix a long
standing bug in the implemenation of PR_SET_CHILD_SUBREAPER where only
children that are forked after the prctl are considered and not children
forked before the prctl.  The only known user of this prctl systemd
forks all children after the prctl.  So no userspace regressions will
occur.  Holding earlier forked children to the same rules as later
forked children creates a semantic that is sane enough to allow
checkpoing of processes that use this feature.

There is a long delayed change by Nikolay Borisov to limit inotify
instances inside a user namespace.

Michael Kerrisk extends the API for files used to maniuplate namespaces
with two new trivial ioctls to allow discovery of the hierachy and
properties of namespaces.

Konstantin Khlebnikov with the help of Al Viro adds code that when a
network namespace exits purges it's sysctl entries from the dcache.  As
in some circumstances this could use a lot of memory.

Vivek Goyal fixed a bug with stacked filesystems where the permissions
on the wrong inode were being checked.

I continue previous work on ptracing across exec.  Allowing a file to
be setuid across exec while being ptraced if the tracer has enough
credentials in the user namespace, and if the process has CAP_SETUID in
it's own namespace.  Proc files for setuid or otherwise undumpable
executables are now owned by the root in the user namespace of their
mm.  Allowing debugging of setuid applications in containers to work
better.

A bug I introduced with permission checking and automount is now fixed.
The big change is to mark the mounts that the kernel initiates as a
result of an automount.  This allows the permission checks in sget
to be safely suppressed for this kind of mount.  As the permission check
happened when the original filesystem was mounted.

89 more lines

Message details and related content
The only known user of this prctl systemd
forks all children after the prctl.  So no userspace regressions will
occur.
Note that runC and containerd (and thus Docker) as well as cri-o use the prctl as well -- to be able to collect exit codes from a non-child process (namely to collect the exit code from PID 1 in the container).

-- 
Aleksa Sarai
Software Engineer (Containers)
SUSE Linux GmbH
https://www.cyphar.com/
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help