[lxc-devel] [PATCH] make [ug]id map ordering consistent with /proc/<nr>/[ug]id_map
Serge Hallyn
serge.hallyn at ubuntu.com
Mon Mar 11 20:40:48 UTC 2013
Quoting Dwight Engen (dwight.engen at oracle.com):
> The id ordering and case of u,g is also consistent with uidmapshift,
> reducing confusion.
>
> doc: Moved example to the the EXAMPLES section, and used values
> corresponding to the defaults in the pending shadow-utils subuid patch.
>
> Signed-off-by: Dwight Engen <dwight.engen at oracle.com>
Acked-by: Serge Hallyn <serge.hallyn at ubuntu.com>
I will also need to update the container-userns-convert script in
the nsexec package :)
> ---
> doc/lxc.conf.sgml.in | 30 ++++++++++++++++--------------
> src/lxc/conf.c | 4 ++--
> src/lxc/confile.c | 8 ++++----
> 3 files changed, 22 insertions(+), 20 deletions(-)
>
> diff --git a/doc/lxc.conf.sgml.in b/doc/lxc.conf.sgml.in
> index ae91221..60e7baa 100644
> --- a/doc/lxc.conf.sgml.in
> +++ b/doc/lxc.conf.sgml.in
> @@ -709,21 +709,12 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> <listitem>
> <para>
> Four values must be provided. First a character, either
> - 'U', or 'G', to specify whether user or group ids are
> - being mapped. Next is the first userid as seen on the
> - host. Next is the userid to be mapped in the container.
> - Finally, a range indicating the number of consecutive
> - ids to map. For instance
> + 'u', or 'g', to specify whether user or group ids are
> + being mapped. Next is the first userid as seen in the
> + user namespace of the container. Next is the userid as
> + seen on the host. Finally, a range indicating the number
> + of consecutive ids to map.
> </para>
> -<programlisting>
> - lxc.id_map = U 200000 0 20000
> - lxc.id_map = G 200000 0 20000
> -</programlisting>
> - <para>
> - will map both user and group ids in the
> - range 0-19999 in the container to the ids
> - 200000-219999 on the host.
> - </para>
> </listitem>
> </varlistentry>
> </variablelist>
> @@ -953,6 +944,17 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> </refsect2>
>
> <refsect2>
> + <title>UID/GID mapping</title>
> + <para>This configuration will map both user and group ids in the
> + range 0-9999 in the container to the ids 100000-109999 on the host.
> + </para>
> + <programlisting>
> + lxc.id_map = u 0 100000 10000
> + lxc.id_map = g 0 100000 10000
> + </programlisting>
> + </refsect2>
> +
> + <refsect2>
> <title>Control group</title>
> <para>This configuration will setup several control groups for
> the application, cpuset.cpus restricts usage of the defined cpu,
> diff --git a/src/lxc/conf.c b/src/lxc/conf.c
> index 97b4ae4..e2abc72 100644
> --- a/src/lxc/conf.c
> +++ b/src/lxc/conf.c
> @@ -2447,7 +2447,7 @@ int lxc_assign_network(struct lxc_list *network, pid_t pid)
> return 0;
> }
>
> -int add_id_mapping(enum idtype idtype, pid_t pid, uid_t host_start, uid_t ns_start, int range)
> +static int add_id_mapping(enum idtype idtype, pid_t pid, uid_t ns_start, uid_t host_start, int range)
> {
> char path[PATH_MAX];
> int ret, closeret;
> @@ -2480,7 +2480,7 @@ int lxc_map_ids(struct lxc_list *idmap, pid_t pid)
>
> lxc_list_for_each(iterator, idmap) {
> map = iterator->elem;
> - ret = add_id_mapping(map->idtype, pid, map->hostid, map->nsid, map->range);
> + ret = add_id_mapping(map->idtype, pid, map->nsid, map->hostid, map->range);
> if (ret)
> break;
> }
> diff --git a/src/lxc/confile.c b/src/lxc/confile.c
> index d350f01..59cedef 100644
> --- a/src/lxc/confile.c
> +++ b/src/lxc/confile.c
> @@ -1049,13 +1049,13 @@ static int config_idmap(const char *key, const char *value, struct lxc_conf *lxc
>
> lxc_list_add_tail(&lxc_conf->id_map, idmaplist);
>
> - ret = sscanf(value, "%c %d %d %d", &type, &hostid, &nsid, &range);
> + ret = sscanf(value, "%c %d %d %d", &type, &nsid, &hostid, &range);
> if (ret != 4)
> goto out;
> - INFO("read uid map: type %c hostid %d nsid %d range %d", type, hostid, nsid, range);
> - if (type == 'U')
> + INFO("read uid map: type %c nsid %d hostid %d range %d", type, nsid, hostid, range);
> + if (type == 'u')
> idmap->idtype = ID_TYPE_UID;
> - else if (type == 'G')
> + else if (type == 'g')
> idmap->idtype = ID_TYPE_GID;
> else
> goto out;
> --
> 1.7.12.3
>
More information about the lxc-devel
mailing list