在 CentOS 上使用 OverlayFS(overlay) 时,权限问题通常出现在 底层目录(lowerdir)只读、上层目录(upperdir/workdir)权限不足、SELinux 限制、或挂载后文件属主异常 等场景。下面按常见情况说明怎么配置权限。
OverlayFS 至少需要:
示例:
mkdir -p /overlay/upper /overlay/work /overlay/lower /merged
权限设置:
chmod 755 /overlay/upper
chmod 755 /overlay/work
chmod 755 /overlay/lower
如果你是普通用户挂载(不推荐),需要确保用户对 upper/work 有写权限。
mount -t overlay overlay \
-o lowerdir=/overlay/lower,upperdir=/overlay/upper,workdir=/overlay/work \
/merged
如果 /merged 访问权限不足:
chmod 755 /merged
Overlay 默认保留 lower/upper 的文件权限。
如果你发现挂载后权限变了,通常是:
uid= / gid=Overlay 不支持 uid= / gid= 选项(和 NFS 不同)。
如果你需要“看起来是某个用户”,通常用:
yum install fuse-overlayfs
fuse-overlayfs -o lowerdir=lower,upperdir=upper,workdir=work merged
chown -R appuser:appuser /overlay/upper
CentOS 默认开启 SELinux,Overlay 很容易报 Permission denied。
getenforce
setenforce 0
给目录打标签:
semanage fcontext -a -e /var/lib/containers /overlay
restorecon -Rv /overlay
或挂载时加:
-o context="system_u:object_r:container_file_t:s0"
如果是 容器存储用的 overlay:
/etc/containers/storage.conf
确保:
driver = "overlay"
权限问题通常是:
/var/lib/containers 属主不对chown -R root:root /var/lib/containers
# 查看挂载
mount | grep overlay
# 查看权限
namei -l /merged/path
# 查看 SELinux 拒绝
ausearch -m avc -ts recent
mkdir -p /ov/lower /ov/upper /ov/work /ov/merged
chmod 755 /ov/upper /ov/work
mount -t overlay overlay \
-o lowerdir=/ov/lower,upperdir=/ov/upper,workdir=/ov/work \
/ov/merged
如果你能具体说一下:
Permission denied?SELinux?)我可以给你更精确的配置。