]> git.proxmox.com Git - mirror_lxc.git/commitdiff
doc: bugfixes
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 5 Sep 2017 22:43:05 +0000 (00:43 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 5 Sep 2017 23:03:38 +0000 (01:03 +0200)
- lxc.id_map -> lxc.idmap
- document lxc.cgroup.dir

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
doc/ja/lxc.container.conf.sgml.in
doc/ko/lxc.container.conf.sgml.in
doc/lxc.container.conf.sgml.in
src/lxc/cgroups/cgmanager.c
src/lxc/conf.c
src/lxc/conf.h
src/tests/lxc-test-apparmor-mount
src/tests/lxc-test-unpriv
src/tests/lxc-test-usernic.in
src/tests/parse_config_file.c
templates/lxc-sabayon.in

index 6c4dadef022f7a3234d3ff64fbef8d635d502605..f567e82124d8ae4fa1adcf57c7dbbb22e6cda6fe 100644 (file)
@@ -105,11 +105,11 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
       example, a process running as UID and GID 0 inside the container might
       appear as UID and GID 100000 on the host.  The implementation and working
       details can be gathered from the corresponding user namespace man page.
-      UID and GID mappings can be defined with the <option>lxc.id_map</option>
+      UID and GID mappings can be defined with the <option>lxc.idmap</option>
       key.
         -->
       本質的には、ユーザ名前空間は与えられた UID、GID の組を隔離します。ユーザ名前空間は、ホスト上の UID、GID のある範囲を、それとは異なるコンテナ上の UID、GID の範囲へマッピングすることで実現します。カーネルは、ホスト上では実際には UID、GID は特権を持たないにも関わらず、コンテナ内ではすべての UID、GID が期待されるように見えるように変換を行います。
-      例えば、コンテナ内では UID、GID が 0 として実行中のプロセスは、ホスト上では UID、GID が 100000 として見えるでしょう。実装と動作の詳細は、ユーザ名前空間の man ページから得られます。UID と GID のマッピングは <option>lxc.id_map</option> を使って定義できます。
+      例えば、コンテナ内では UID、GID が 0 として実行中のプロセスは、ホスト上では UID、GID が 100000 として見えるでしょう。実装と動作の詳細は、ユーザ名前空間の man ページから得られます。UID と GID のマッピングは <option>lxc.idmap</option> を使って定義できます。
     </para>
 
     <para>
@@ -1904,7 +1904,7 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
       <variablelist>
         <varlistentry>
           <term>
-            <option>lxc.id_map</option>
+            <option>lxc.idmap</option>
           </term>
           <listitem>
             <para>
@@ -2642,8 +2642,8 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
         この設定は、コンテナ内のユーザとグループ両方の id 0-9999 の範囲を、ホスト上の 100000-109999 へマッピングします。
       </para>
       <programlisting>
-        lxc.id_map = u 0 100000 10000
-        lxc.id_map = g 0 100000 10000
+        lxc.idmap = u 0 100000 10000
+        lxc.idmap = g 0 100000 10000
       </programlisting>
     </refsect2>
 
index b0466a1ebb9f930ab61c613030c453424b707445..e880525a6bb13c369f970733188e2ca80a587364 100644 (file)
@@ -1839,7 +1839,7 @@ mknod errno 0
       <variablelist>
        <varlistentry>
          <term>
-           <option>lxc.id_map</option>
+           <option>lxc.idmap</option>
          </term>
          <listitem>
            <para>
@@ -2564,8 +2564,8 @@ mknod errno 0
         이 설정은 UID와 GID 둘다를 컨테이너의 0 ~ 9999를 호스트의 100000 ~ 109999로 매핑한다.
       </para>
       <programlisting>
-       lxc.id_map = u 0 100000 10000
-       lxc.id_map = g 0 100000 10000
+       lxc.idmap = u 0 100000 10000
+       lxc.idmap = g 0 100000 10000
       </programlisting>
     </refsect2>
 
index f3b594ea084fa28d334d8588eac14dee402cce13..397222f0bb65614ae2caaf08750a3ae38ff4fd2d 100644 (file)
@@ -86,7 +86,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
       example, a process running as UID and GID 0 inside the container might
       appear as UID and GID 100000 on the host.  The implementation and working
       details can be gathered from the corresponding user namespace man page.
-      UID and GID mappings can be defined with the <option>lxc.id_map</option>
+      UID and GID mappings can be defined with the <option>lxc.idmap</option>
       key.
     </para>
 
@@ -1129,6 +1129,25 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
             </para>
           </listitem>
         </varlistentry>
+        <varlistentry>
+          <term>
+            <option>lxc.cgroup.dir</option>
+          </term>
+          <listitem>
+            <para>
+              specify a directory or path in which the container's cgroup will
+              be created. For example, setting
+              <option>lxc.cgroup.dir = my-cgroup/first</option> for a container
+              named "c1" will create the container's cgroup as a sub-cgroup of
+              "my-cgroup". For example, if the user's current cgroup "my-user"
+              is located in the root cgroup of the cpuset controllerin in a
+              cgroup v1 hierarchy this would create the cgroup
+              "/sys/fs/cgroup/cpuset/my-user/my-cgroup/first/c1" for the
+              container. Any missing cgroups will be created by LXC. This
+              presupposes that the user has write access to its current cgroup.
+            </para>
+          </listitem>
+        </varlistentry>
       </variablelist>
     </refsect2>
 
@@ -1383,7 +1402,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
       <variablelist>
         <varlistentry>
           <term>
-            <option>lxc.id_map</option>
+            <option>lxc.idmap</option>
           </term>
           <listitem>
             <para>
@@ -1935,8 +1954,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
         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
+        lxc.idmap = u 0 100000 10000
+        lxc.idmap = g 0 100000 10000
       </programlisting>
     </refsect2>
 
index 6c6278e5968bc83a2fcb677a30d1a7de1671015e..054eb1715525dd54696e5580b7450d5cfdabfd09 100644 (file)
@@ -1559,7 +1559,7 @@ static bool cgm_chown(void *hdata, struct lxc_conf *conf)
 }
 
 /*
- * TODO: this should be re-written to use the get_config_item("lxc.id_map")
+ * TODO: this should be re-written to use the get_config_item("lxc.idmap")
  * cmd api instead of getting the idmap from c->lxc_conf.  The reason is
  * that the id_maps may be different if the container was started with a
  * -f or -s argument.
index 6e5af200c1f59d41f583e780e9f69a702aa95eb9..7a1188165a34a15f4d8f2d32a448ad407969a767 100644 (file)
@@ -3972,8 +3972,8 @@ void suggest_default_idmap(void)
        ERROR("To pass uid mappings to lxc-create, you could create");
        ERROR("~/.config/lxc/default.conf:");
        ERROR("lxc.include = %s", LXC_DEFAULT_CONFIG);
-       ERROR("lxc.id_map = u 0 %u %u", uid, urange);
-       ERROR("lxc.id_map = g 0 %u %u", gid, grange);
+       ERROR("lxc.idmap = u 0 %u %u", uid, urange);
+       ERROR("lxc.idmap = g 0 %u %u", gid, grange);
 
        free(gname);
        free(uname);
index 7c38d93badfa343e9025b3ac1124dc2ab0fa72c4..882c9cd836c8a0f2152cfa82e37f4e5fefd3caa2 100644 (file)
@@ -96,10 +96,10 @@ enum idtype {
 
 /*
  * id_map is an id map entry.  Form in confile is:
- * lxc.id_map = u 0    9800 100
- * lxc.id_map = u 1000 9900 100
- * lxc.id_map = g 0    9800 100
- * lxc.id_map = g 1000 9900 100
+ * lxc.idmap = u 0    9800 100
+ * lxc.idmap = u 1000 9900 100
+ * lxc.idmap = g 0    9800 100
+ * lxc.idmap = g 1000 9900 100
  * meaning the container can use uids and gids 0-99 and 1000-1099,
  * with [ug]id 0 mapping to [ug]id 9800 on the host, and [ug]id 1000 to
  * [ug]id 9900 on the host.
index 390c6f46cf89e8aa334e0c370503d37811477e3b..a09fd544383df895a77f14583682bdffdc47bffa 100755 (executable)
@@ -102,8 +102,8 @@ mkdir -p $HDIR/.config/lxc/
 cat > $HDIR/.config/lxc/default.conf << EOF
 lxc.net.0.type = veth
 lxc.net.0.link = lxcbr0
-lxc.id_map = u 0 910000 9999
-lxc.id_map = g 0 910000 9999
+lxc.idmap = u 0 910000 9999
+lxc.idmap = g 0 910000 9999
 EOF
 chown -R $TUSER: $HDIR
 
index 40c6bf6676aec88d626be1dc0cd6bddeab3a1bec..5fe0927948cd5e1170e80c6112e33e6d1e0ff702 100755 (executable)
@@ -118,8 +118,8 @@ mkdir -p $HDIR/.config/lxc/
 cat > $HDIR/.config/lxc/default.conf << EOF
 lxc.net.0.type = veth
 lxc.net.0.link = lxcbr0
-lxc.id_map = u 0 910000 9999
-lxc.id_map = g 0 910000 9999
+lxc.idmap = u 0 910000 9999
+lxc.idmap = g 0 910000 9999
 EOF
 chown -R $TUSER: $HDIR
 
index 53bc8166c08ead7e20bfcfa220ddc75f598b5216..f7d19a362cae02550d28f7892ed1487539e22e30 100755 (executable)
@@ -81,8 +81,8 @@ usermod -v 910000-919999 -w 910000-919999 usernic-user
 mkdir -p /home/usernic-user/.config/lxc/
 cat > /home/usernic-user/.config/lxc/default.conf << EOF
 lxc.net.0.type = empty
-lxc.id_map = u 0 910000 10000
-lxc.id_map = g 0 910000 10000
+lxc.idmap = u 0 910000 10000
+lxc.idmap = g 0 910000 10000
 EOF
 
 if which cgm >/dev/null 2>&1; then
index ef03b928587751210949b93a227c0b18f2e35054..db61dd0446451e573dde7afd4d4c05e182480051 100644 (file)
@@ -455,6 +455,34 @@ int main(int argc, char *argv[])
                return -1;
        }
 
+       /* lxc.idmap
+        * We can't really save the config here since save_config() wants to
+        * chown the container's directory but we haven't created an on-disk
+        * container. So let's test set-get-clear.
+        */
+       if (set_get_compare_clear_save_load(
+               c, "lxc.idmap", "u 0 100000 1000000000", NULL, false) < 0) {
+               lxc_error("%s\n", "lxc.idmap");
+               goto non_test_error;
+       }
+
+       if (!c->set_config_item(c, "lxc.idmap", "u 1 100000 10000000")) {
+               lxc_error("%s\n", "failed to set config item "
+                                 "\"lxc.idmap\" to \"u 1 100000 10000000\"");
+               return -1;
+       }
+
+       if (!c->set_config_item(c, "lxc.idmap", "g 1 100000 10000000")) {
+               lxc_error("%s\n", "failed to set config item "
+                                 "\"lxc.idmap\" to \"g 1 100000 10000000\"");
+               return -1;
+       }
+
+       if (!c->get_config_item(c, "lxc.idmap", retval, sizeof(retval))) {
+               lxc_error("%s\n", "failed to get config item \"lxc.cgroup\"");
+               return -1;
+       }
+
        c->clear_config(c);
        c->lxc_conf = NULL;
 
index 76e877d472649b0fa0873659b689bac500448080..75e5c765e9917a3386510a4d341c33bcb5e32731 100644 (file)
@@ -287,8 +287,8 @@ configure_container() {
     if [[ $unprivileged && $unprivileged == true ]] ; then
         if [[ $flush_owner == true ]] ; then
             unprivileged_options="
-lxc.id_map = u 0 ${mapped_uid} 65536
-lxc.id_map = g 0 ${mapped_gid} 65536
+lxc.idmap = u 0 ${mapped_uid} 65536
+lxc.idmap = g 0 ${mapped_gid} 65536
 "
         fi