如何使用setfacl和Dockerfile在Centos中创建永久性ACL

hav*_*ak5 6 acl docker centos7

我正在尝试为一个组设置访问包含不断重新生成的目录和文件的目录的权限。

目录“ / var / lib / mod_tile”由组“映射器”和用户“ gis”拥有。文件夹上的权限为755(用户:rwx,组:rx,其他:rx)

该文件夹中的子目录会经常删除和重新创建,由于这些目录是由另一软件生成的,因此我无法控制这些目录的权限。生成的子目录的权限为755(与上面相同)。

我想创建一个ACL,以允许我的组“映射器”具有对这些文件夹的写访问权。我正在Dockerfile中运行以下命令:

RUN setfacl -Rm g:mappers:rwx /var/lib/mod_tile
RUN setfacl -Rdm g:mappers:rwx /var/lib/mod_tile
Run Code Online (Sandbox Code Playgroud)

这使我的目录及其子目录具有对组映射器的rwx权限。它使所有当前和新的子目录/文件都具有这些权限。

但是,在我建立映像并运行之后

docker run -it
Run Code Online (Sandbox Code Playgroud)

并检查权限

setfacl /var/lib/mod_tile
Run Code Online (Sandbox Code Playgroud)

ACL消失了,并且当我在“映射器”组中的另一个用户运行时,我正在使用的程序无法写入这些文件夹。

然后,当我运行时,我手动运行相同的命令

setfacl /var/lib/mod_tile
Run Code Online (Sandbox Code Playgroud)

权限在那里!这使我相信ACL不会在计算机的每次启动时都存在

有什么方法即使在重新启动时也能保留ACL?