3

我在磁盘上有一个目录,该目录的sharegid 为1001. 我想将该目录添加为其中一个 lxc 容器上的设备,并让该组结转。

我尝试过使用raw.idmap 'gid 1001 1001',但如果添加这个,lxc 容器将不会启动。

谢谢

4

2 回答 2

3

使映射工作需要三个部分。

  1. raw.idmap 集(你已经完成了)
  2. 容器有一个现有的 gid 可以映射到
  3. 影子文件允许 id 映射

您正在尝试将主机 gid 1001 ( share) 映射到容器 gid。在这种情况下,您选择了 container-gid 也将是 1001。

你已经完成了上面的#1,你已经设置了映射。

完成 #2 只需要您在容器内创建一个 gid 为 1001 的组。理论上,这实际上可以是新组的任何 gid,您只需修改 raw.idmap 命令以设置目标 gid 以匹配容器中定义的 gid。

对于上面的#3,您需要检查/etc/subgid以确保您被允许将 host-gid 1001 映射到 container-gid 1001。
当您查看时,/etc/subgid您应该看到一些类似于以下内容的行,尽管每个行的第一个数字行可能不同:

lxd:100000:65536
root:100000:65536

这是默认配置,表示 lxd 可以使用范围从 100000 开始的 gid,这会生成相对于主机 gid 为 100000(或该行中的第一个数字是什么)具有隐藏偏移量的容器。如果您在容器内的挂载目录中创建文件,则从主机可见的 gid 将是该偏移量 + 容器 gid。
要允许 lxd 使用 gid 1001,并因此允许它将主机 gid 1001 映射到容器 gid 1001(或任何容器 gid),您需要将权限添加到您的/etc/subgid文件。您可以通过在文件末尾添加这样的行来执行此操作:

lxd:1001:1
root:1001:1

如果您希望主机允许 lxd 在使用 raw.idmap 选项时映射多个不同的 gid,则可以将它们指定为“

lxd:start-id-to-expose:count-of-ids-to-expose
root:start-id-to-expose:count-of-ids-to-expose

在文件的附加行中列出了不连续的范围。
确保在需要添加新行时始终添加 lxd 和 root 行,因为 lxd 文档说它们必须在大多数用途中保持同步。

于 2017-12-06T00:51:57.390 回答
1

您用该行告诉的是将具有 id 1001 的主机用户映射到具有 id 1001 的容器用户,这意味着您应该确保容器内有一个具有 id 1001 的用户或将其映射到不同的用户(容器的第一个用户通常具有 id 1000)。

于 2017-08-17T08:11:00.590 回答