Linux挂载目录不可写主因是挂载选项为ro、文件系统只读、SELinux/AppArmor限制、物理写保护或用户权限不足;需依次检查mount参数、dmesg日志、tune2fs状态、SELinux策略、chattr属性及fstab配置。

Linux挂载目录不可写,通常不是因为目录本身权限不对,而是挂载时未正确传递写入权限,或后端文件系统/设备本身限制了写操作。关键要区分是挂载选项问题、文件系统只读状态、还是SELinux/AppArmor等安全模块干预。
检查挂载选项是否启用写入
运行 mount | grep <挂载点> 查看实际挂载参数。重点关注是否有 ro(read-only)字样。即使源设备可写,若挂载时加了 -o ro 或默认以只读方式挂载(如某些NFS服务器配置、光盘镜像),目录就无法写入。
- 临时修复:用 mount -o remount,rw /mount/point 尝试重新挂载为可读写
- 永久生效:修改 /etc/fstab 对应行,确保第4字段(options)包含 rw,例如:UUID=xxx /mnt/data ext4 defaults,rw 0 2
- 注意:部分文件系统(如NTFS、FAT)需额外指定驱动和权限参数,例如 ntfs-3g 要加 uid=1000,gid=1000,umask=022
确认底层文件系统是否只读
有些情况是设备本身被标记为只读,比如磁盘错误触发内核自动设为ro、U盘写保护开关开启、或ext系列文件系统因错误进入只读模式。
- 执行 dmesg | tail -20 查看是否有类似 "EXT4-fs (sdb1): re-mounted. Opts: (null)" 或 "I/O error, dev sdb1, sector XXXXX" 的报错
- 对ext2/3/4运行 tune2fs -l /dev/sdXN | grep "Filesystem state",若显示 clean with errors 或 has errors,需先 e2fsck -f /dev/sdXN 修复
- 物理写保护请检查U盘/SD卡侧面拨杆,或尝试在其他主机上测试
排查SELinux或文件系统扩展属性干扰
SELinux可能阻止写入,尤其在CentOS/RHEL系;而某些挂载(如bind mount、overlayfs)或设置了特殊xattr(如chattr +i)也会导致“权限拒绝”。
- 临时禁用SELinux验证:运行 setenforce 0,再测试写入。若恢复写入,说明是SELinux策略问题,可用 ausearch -m avc -ts recent | audit2why 分析原因
- 检查文件系统是否被锁定:lsattr /mount/point,若看到 ----i--------- 表示不可修改,需 chattr -i /mount/point(仅root可操作)
- 对于NFS/CIFS挂载,还需确认服务端导出权限(/etc/exports 中是否含 rw 和 no_root_squash 等必要选项)
验证用户对挂载点的访问权限
挂载成功且文件系统可写,不代表当前用户能写——仍需满足目录本身的ugo权限+有效用户组归属。
- 运行 ls -ld /mount/point,确认输出中对应位置有 w(如 drwxr-xr-x 表示owner可写;dr-xrwxr-x 表示group可写)
- 若属主/属组不符,可用 chown user:group /mount/point 或 chmod g+w /mount/point 调整(注意:部分网络文件系统不支持chmod/chown)
- 对FAT/NTFS等无原生Unix权限的文件系统,必须在挂载时通过 uid=、gid=、fmask/dmask 显式指定权限








