Skip to content

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