无法使用标准用户让容器挂载卷

无法使用标准用户让容器挂载卷

在运行标准用户时,我似乎无法让容器(正在运行podman)能够写入目录。这个解决方案也没有工作。需要明确的是,我可以从这些目录中读取文件,但我无法写入或创建它们。

zZ在音量上似乎不起作用。我已经使用 chcon 让它与 root 一起工作,但我尝试添加新的策略模块、许可范围、许可模式等。

我认为这是某种权限错误。容器中的文件夹(至少在天真的情况下)似乎由“组”拥有root并具有“组”,nogroup我不知道这是否是标准的。

我已经尝试chown过(比如这里)容器用户 id 和/或组 id 的目录(在这种情况下,它可以由nobody和拥有nogroup(不起作用)。我还使用主机用户+组 id 登录到容器(它在bash 终端) - 也没有什么区别,这些与chowning 文件夹到不同的用户/组,例如主机用户/组,容器用户/组,根用户/组(有点模糊的容器/主机根)等。 。

以下是ls -lnZ一些测试文件中容器内外的一些示例输出(请注意,我更改了用户 ID,65534除了显然这是为 保留的特殊 ID nobody。的 ID主机用户9876和 id容器用户1234。我检查过id -u以确保实际的用户 ID 与这些相对应。小注意事项,在这种情况下,主机组 id 是不同的,所以可以说5432,而容器用户的组 id 是1234

测试5:

  • 容器:
    drwxr-xr-x. 2 0 65534 system_u:object_r:container_file_t:s0 4096 Nov  7 23:50 test
    
  • 主持人:
    drwxr-xr-x. 2 9876 9876 system_u:object_r:container_file_t:s0             4096 Nov  7 18:50 test5
    

测试4:

  • 容器:
    drwxr-xr-x. 2 0 65534 system_u:object_r:container_file_t:s0 4096 Nov  8 02:59 test
    
  • 主持人:
    drwxr-xr-x. 2 9876 1234 system_u:object_r:container_file_t:s0             4096 Nov  7 21:59 test4
    

测试3:

  • 容器:
    drwxr-xr-x. 2 0 65534 system_u:object_r:container_file_t:s0 4096 Nov  7 21:40 test
    
  • 之前主持:
    drwxr-xr-x. 2 9876 1234 system_u:object_r:container_file_t:s0:c1022,c1023 4096 Nov  7 16:40 test3
    
  • 主持人之后:
    drwxr-xr-x. 2 9876 1234 system_u:object_r:container_file_t:s0 4096 Nov  7 16:40 test3
    

如果我修复 test5 的组 id,仍然不起作用:

测试5(再次):

  • 容器:
    drwxr-xr-x. 2 0 0 system_u:object_r:container_file_t:s0 4096 Nov  7 23:50 test
    
  • 主持人:
    drwxr-xr-x. 2 9876 5432 system_u:object_r:container_file_t:s0 4096 Nov  7 18:50 test5
    

作为标准用户,我在容器中的已安装卷中写入/创建文件可能会遇到什么问题,以及如何使标准用户在已安装目录中正确创建/写入文件,而无需诉诸非常不安全的解决方案?

相关内容