在 CentOS 中使用 overlay(常见于 Docker 存储驱动、OverlayFS 挂载、或者 kubelet/容器场景)时,“权限如何设置”通常分为几种情况。下面按常见场景说明。
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
chmod 755 /upper /work /merged
chown root:root /upper /work
如果是给普通用户用:
chown appuser:appuser /upper /work /merged
CentOS 7/8 默认使用 overlay2 存储驱动。
docker info | grep Storage
/var/lib/docker 权限不对chmod 711 /var/lib/docker
chown root:root /var/lib/docker
CentOS 默认开启 SELinux,必须加 z 或 Z:
docker run -v /data:/data:z myimage
或容器内部:
docker run --privileged=false --security-opt label=disable ...
检查:
getenforce
如果是 kubelet 使用 overlay:
/var/lib/kubelet
/var/lib/docker
推荐:
chmod 700 /var/lib/kubelet
chown root:root /var/lib/kubelet
setsebool -P container_manage_cgroup on
mount | grep overlay
ls -ld /upper /work /merged
ls -Z /upper
setenforce 0
✅ 使用 overlay2
✅ 保持 /var/lib/docker 属主为 root
✅ 开启 SELinux 并使用 :z 挂载卷
✅ upper/work/merged 目录不要给 777
如果你指的是 具体场景(如 Docker 容器写文件失败、K8s Pod 权限、NFS + overlay),可以告诉我,我给你针对性配置。