Podman Volumes and SELinux¶
SELinux¶
Security-Enhanced Linux(SELinux)是一种适用于Linux系统的安全架构,它允许管理员更好地控制谁可以访问系统WhatisSELinux?。详细有关SELinux的叙述参考SELinux策略与规则。
1. Problem Intro¶
当Podman运行在启用了SELinux的系统上,且需要映射Volumes时,将会遇到权限问题。
在以非root账户运行podman容器时,/home/user/
目录下的文件可能存在以下的上下文权限:unconfined_u:object_r:data_home_t:s0
,但是podman volumes需要这样的权限system_u:object_r:container_file_t:s0
才能正常运行。
podman在运行时创建的容器卷将自动设置适当的上下文。 但是,对于/home/user/
目录卷,podman默认不会更改上下文。
2. Auto Lables¶
podman提供了两种lables用于运行时修改安全上下文::z
和:Z
- Shared Lables
- Private Lables
Shared Lables 允许多个容器同时访问一个volume;
Private labels 只允许特定的容器访问该volum。
REF¶
[1]. https://blog.christophersmart.com/2021/01/31/podman-volumes-and-selinux/
[2]. https://m-zhoujie2.gitbooks.io/-linux-devops-2/content/chapter3-10.html