]> git.ipfire.org Git - thirdparty/lxc.git/commit
Fix unprivileged containers started by root
authorStéphane Graber <stgraber@ubuntu.com>
Wed, 26 Feb 2014 18:00:36 +0000 (13:00 -0500)
committerStéphane Graber <stgraber@ubuntu.com>
Thu, 27 Feb 2014 22:47:31 +0000 (17:47 -0500)
commit0e6e3a41089c86447fef18e54c2796b312a57a94
tree52557f1206f67448b9a064545519c4d95917b540
parent99b71824347e3681edec0b5af46dd91e849eae94
Fix unprivileged containers started by root

This change makes it possible to create unprivileged containers as root.
They will be stored in the usual system wide location, use the usual
system wide cache but will be running using a uid/gid map.

This also updates lxc_usernsexec to use the same function as the rest of
LXC, centralizing all the userns switch in a single function.

That function now detects the presence of newuidmap and newgidmap on the
system, if they are present, they will be used for containers created as
either user or root. If they're not and the user isn't root, an error is
shown. If they're not and the user is root, LXC will directly set the
uid_map and gid_map values.

All that should allow for a consistent experience as well as supporting
distributions that don't yet ship newuidmap/newgidmap.

To make things simpler in the future, an helper function "on_path" is
also introduced and used to detect the presence of newuidmap and
newgidmap.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
src/lxc/conf.c
src/lxc/lxc_usernsexec.c
src/lxc/lxccontainer.c
src/lxc/utils.c
src/lxc/utils.h