只读挂载是系统主动构建的可信边界,非单纯写入限制;适用目录包括/usr、/boot、/etc(需配合机制)、/opt及/var/www/html等,核心原则为内容稳定、无需运行时修改、多服务依赖。

只读挂载不是“不能写”的限制,而是系统主动筑起的一道可信边界——它让攻击者即使获得高权限,也无法篡改关键路径下的文件,同时也能防止误操作或程序异常引发的破坏。
哪些目录适合只读挂载
核心原则是:内容稳定、无需运行时修改、被多个服务依赖。常见推荐目标包括:
-
/usr:存放绝大多数二进制程序和库,生产环境中极少更新,挂为只读后可阻断对
/usr/bin、/usr/lib的篡改; - /boot:内核与引导文件所在,一旦被恶意替换将导致系统无法启动或加载后门;
-
/etc(需配合其他机制):虽然配置常需调整,但可对特定子目录如
/etc/ssl/certs或只读镜像部署场景下的完整/etc使用只读挂载; -
/opt 或自定义部署目录:例如 Web 静态资源目录
/var/www/html,适用于 CDN 回源或只读应用分发。
挂载方式选择与实操要点
只读挂载有三种常用路径,适用阶段不同:
-
挂载时指定:最直接,适合新挂载或临时测试。
mount -o ro /dev/sdb1 /mnt/data; -
remount 现有挂载:无需卸载,适用于已在线的关键路径。
mount -o remount,ro /usr; -
预设文件系统默认挂载选项:用
tune2fs -E mount_opts=ro /dev/sdXN设置后,每次自动以只读方式挂载,避免遗漏;
注意:remount 操作要求挂载点未被写进程占用;若提示 busy,可用 lsof +D /usr 查找并停止相关进程后再执行。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
识别意外只读:别把它当配置,先查故障
如果某分区突然变成只读(比如根分区 /),大概率不是你设的,而是内核触发的保护响应。必须先排查底层问题:
- 运行
dmesg -T | tail -40,重点看EXT4-fs error、I/O error、ata timeout等关键词; - 检查文件系统状态:
tune2fs -l /dev/sdXN | grep "Filesystem state",若显示clean with errors,说明存在未修复错误; - 用
smartctl -a /dev/sdX查 SMART 健康指标,尤其关注Reallocated_Sector_Ct和Current_Pending_Sector是否异常增长。
确认无硬件风险后,再执行 umount → e2fsck -y → mount -o rw 流程。切忌跳过检查直接 remount,rw,否则可能扩大损坏。
组合使用效果更强
只读挂载本身不防 root 用户,但它和其它机制叠加能形成纵深防御:
- 搭配
chattr +i锁定单个关键文件(如/etc/passwd),即使挂载为 rw 也无法修改; - 结合
mount -o bind,ro实现目录级只读映射,比如把/srv/read-only-config绑定到/etc/myapp/conf; - 在容器或 systemd 服务中通过
ReadOnlyPaths=单独限制某个服务可见路径为只读,不影响全局。
这类组合既保持灵活性,又守住底线——不是所有地方都要只读,而是让只读出现在真正需要的地方。










