gpt4 book ai didi

docker - Docker 容器如何写入具有通过组成员资格授予的权限的挂载目录?

转载 作者:行者123 更新时间:2023-12-01 15:16:51 26 4
gpt4 key购买 nike

版本

  • 主机操作系统:Debian 4.9.110
  • Docker 版本:18.06.1-ce

  • 设想

    我有一个目录,其中多个用户( user-auser-b )通过公共(public)组成员身份( shared )具有读/写访问权限,通过 chown 设置:
    /media/disk-a/shared/$ ls -la
    drwxrwsr-x 4 user-a shared 4096 Oct 7 22:21 .
    drwxrwxr-x 7 root root 4096 Oct 1 19:58 ..
    drwxrwsr-x 5 user-a shared 4096 Oct 7 22:10 folder-a
    drwxrwsr-x 3 user-a shared 4096 Nov 10 22:10 folder-b

    UID 和 GID 如下:
    uid=1000(user-a) gid=1000(user-a) groups=1000(user-a),1003(shared)
    uid=1002(user-b) gid=1002(user-b) groups=1002(user-b),1003(shared)

    相关 /etc/group看起来像这样:
    shared:x:1003:user-a,user-b

    su进入两个用户,可以在共享目录中按预期创建文件。

    共享目录通过挂载绑定(bind)到 /shared/ 附加到 Docker 容器。 . Docker 容器运行为 user-b (使用 --user "1002:1002" 参数)
    $ ps aux | grep user-b
    user-b 1347 0.2 1.2 1579548 45740 ? Ssl 17:47 0:02 entrypoint.sh
    id从容器中打印以下内容,对我来说看起来还不错:
    I have no name!@7a5d2cc27491:/$ id
    uid=1002 gid=1002

    还有 ls -la完美地反射(reflect)了它的主机系统:
    I have no name!@7a5d2cc27491:/shared ls -la
    total 16
    drwxrwsr-x 4 1000 1003 4096 Oct 7 20:21 .
    drwxr-xr-x 1 root root 4096 Oct 8 07:58 ..
    drwxrwsr-x 5 1000 1003 4096 Oct 7 20:10 folder-a
    drwxrwsr-x 3 1000 1003 4096 Nov 10 20:10 folder-b

    问题

    在容器内,我无法向共享目录写入任何内容。对于 touch test我得到以下信息,即:
    I have no name!@7a5d2cc27491:/shared$ touch test
    touch: cannot touch 'test': Permission denied

    我可以写入由 user-b 直接拥有的目录(用户和组)并安装到容器中......只是组成员身份似乎根本不受尊重。

    我研究过 user namespace remapping 之类的东西和东西,但这些似乎是解决一些不适用于这里的东西。我想念什么?

    最佳答案

    您的容器用户拥有 gid=1002 ,但不是 shared 组的成员与 gid=1003 .

    除了 --user "1002:1002"你需要--group-add 1003 .
    允许容器用户使用 gid=1003 访问共享文件夹.
    id应该显示:

    I have no name!@7a5d2cc27491:/$ id
    uid=1002 gid=1002 groups=1003

    关于docker - Docker 容器如何写入具有通过组成员资格授予的权限的挂载目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52706424/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com