首页/云/Docker 容器速查/SELinux 卷标签 :z 与 :Z
资源与安全50 条

SELinux 卷标签 :z 与 :Z

在 SELinux 主机上修正卷标签::z 标记共享、:Z 标记私有并重打标签;标签不对时容器读写被拒并留下 avc denied 记录。

Docker 容器速查云更新于 2026-10-13

卷标签后缀的区别

在启用了强制访问控制的 Linux 主机上修正卷标签:不同后缀分别表示共享与私有,标签不对时容器读写会被拒绝并留下审计记录。

基本信息

场景强制访问控制启用状态的主机上的卷访问
语法挂载卷时加共享或私有的后缀
排查查看当前模式、目录标签与审计记录
区别共享后缀可多容器共用,私有后缀会重新打标签
影响面重新打标签会影响该目录上的其他使用者

典型使用场景

  • 容器读写挂载目录被拒绝时定位标签问题
  • 多容器共享同一目录时选择合适的后缀
  • 核对宿主当前的强制访问控制模式
  • 排查审计记录里的拒绝事件
  • 从其他发行版迁移过来的主机上确认标签行为

检查与修正

检查与修正
getenforce                                   # 当前模式
docker run -d -v /srv/data:/data:Z --name app app/data:1.0
ls -Z /srv/data | head -3                    # 查看目录标签
sudo ausearch -m avc -ts recent 2>/dev/null | tail -5   # 审计记录

关注点与异常表现

关注点正常表现异常表现
当前模式按预期启用或宽松模式与预期不符
目录标签与容器可用类型一致标签不匹配被拒
审计记录无相关拒绝频繁出现拒绝事件
共享需求按共享后缀配置私有后缀影响其他使用者
多个容器共享同一目录用共享后缀;私有后缀会把宿主目录重新打成容器可用标签,影响该目录上的其他使用者。
对系统目录执行私有后缀重打标签可能影响宿主服务,动手前先圈定范围。
标签修正要在创建或重建容器时生效,运行中的容器改挂载参数不生效。
目录标签与容器期望类型不匹配时读写会被拒绝并留下审计记录,先看审计再改标签。
在宽松模式下这个问题不会出现,换到启用模式的主机后才暴露,迁移时要专门验证。
标签问题表现为权限被拒,但根因不在文件权限位,排查时不要把两者混淆。

易错点

  • 私有后缀会重新打标签并影响目录上的其他使用者,用前先圈定范围
  • 标签修正要在创建或重建容器时生效,运行时改参数无效
  • 只看文件权限位不看标签与审计记录,会找不到根因
  • 从宽松模式主机迁到启用模式主机时忽略这类差异,上线后才暴露问题

数据来源与参考

  • Docker 官方文档:Configure the SELinux label(docs.docker.com/storage/bind-mounts)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌