Linux挂载目录不可写通常因挂载选项ro、非原生文件系统(如NTFS/exFAT)写入限制、uid/gid权限不匹配或SELinux/AppArmor干预;需依次检查mount参数、文件系统类型、用户与挂载选项匹配性及安全模块策略。

Linux挂载目录不可写,通常不是因为目录本身权限不足,而是挂载时的文件系统选项、底层文件系统类型或挂载源(如NFS、NTFS、exFAT等)限制了写入能力。关键要分清:是“用户无权写”,还是“系统禁止写”。
检查挂载选项是否禁用写入
运行 mount 或 findmnt 查看目标目录的实际挂载参数:
- 若看到 ro(read-only),说明挂载时明确指定了只读,需重新以 rw 挂载
- 常见误操作:
mount -o remount,ro /mnt/data后忘记改回rw - 某些文件系统(如NTFS-3G)默认启用 uid/gid/noexec 等限制,需显式加
umask=000或uid=1000,gid=1000才能正常写入
确认底层文件系统是否支持Linux原生写入
非Linux原生文件系统常有写入限制:
- NTFS:内核原生 ntfs 驱动仅支持只读;必须用 ntfs-3g(FUSE实现)才能读写
- exFAT:需安装 exfat-utils 和 fuse-exfat,否则挂载后为只读
-
FAT32:无 Unix 权限概念,挂载时需通过
uid=、gid=、umask=显式指定归属和权限 -
NFS:服务端导出选项(
rw、no_root_squash、all_squash)直接影响客户端能否写入
验证挂载点权限与用户身份匹配
即使挂载为 rw,仍可能因权限不匹配而无法写入:
- 用 ls -ld /mnt/path 检查挂载点目录自身权限(注意:挂载后该目录权限常被忽略,实际生效的是文件系统根目录权限)
- 对 NTFS/exFAT/FAT 类文件系统,挂载命令中未指定
uid/gid,可能导致所有文件属主为 root,普通用户无法写入 - 使用 stat /mnt/path 查看实际挂载设备的访问控制,确认 effective uid/gid 是否匹配当前用户
排查 SELinux 或 AppArmor 干预
在启用强制访问控制的系统(如 RHEL/CentOS/Fedora)中,安全模块可能阻止写入:
- 临时测试:执行 setenforce 0(SELinux)或 aa-disable(AppArmor),再试写操作
- 若恢复可写,说明策略限制;应通过 ausearch -m avc -ts recent 或 dmesg | grep -i avc 查日志定位具体拒绝项
- 修复建议:用 chcon 修改上下文,或调整策略模块(如
setsebool -P samba_export_all_rw 1)
不复杂但容易忽略:先看 mount 输出,再查文件系统类型,接着验用户与挂载参数匹配度,最后排除安全模块干扰。四步到位,基本能定位 95% 的挂载不可写问题。










