多用户环境下配置只读挂载的核心目标是按需隔离写权限、防止误改或越权操作,需区分本地磁盘、网络共享(如samba/nfs)及系统关键路径等场景,不同场景下实现层级与效果差异显著。

多用户环境下配置只读挂载,核心目标不是“让所有人只能读”,而是**按需隔离写权限、防止误改或越权操作**。关键在于区分场景:是挂载本地磁盘、网络共享(如Samba/NFS),还是保护系统关键路径。不同场景下,“只读”的实现层级和效果差异很大。
本地块设备挂载为只读
适用于U盘、备份盘、镜像盘等外部存储,防止用户意外写入或勒索软件加密。
- 临时挂载:用 mount -o ro /dev/sdb1 /mnt/backup 即可生效,无需修改文件系统本身
- 开机自动只读:在 /etc/fstab 对应行的挂载选项中加入 ro,例如:
/dev/sdb1 /mnt/backup ext4 defaults,ro 0 0 - 已挂载后切换:执行 mount -o remount,ro /mnt/backup,无需卸载重挂
网络文件系统(Samba/CIFS)的只读控制
Samba共享的“只读”由服务端权限主导,客户端仅能配合限制。若服务端已设为只读(如rob用户仅read),客户端即使挂载为rw,实际也无法写入。
- 强制客户端只读:挂载时加 ro 选项,例如:
//server0/common /mnt/multiuser cifs credentials=/root/smb.cred,ro,multiuser,sec=ntlmssp,_netdev 0 0 - 注意:ro 和 multiuser 可共存;但若服务端未授权写权限,加 ro 是冗余的,仅起心理提示作用
- 敏感凭证文件(如 smb.cred)必须设为 chmod 600,避免被普通用户读取
对特定目录实施不可绕过的只读保护
当需要彻底禁止包括 root 在内的任何写操作(如合规审计日志目录、固件分区),仅靠 mount -o ro 不够——它可被 remount,rw 覆盖。
- 使用 chattr +i 设置文件或目录为“不可变”(immutable):
chattr +i /var/log/audit/ —— 连 root 也无法删除、重命名、写入 - 恢复可写:需先执行 chattr -i /var/log/audit/(仅限必要维护时)
- 适用场景:静态配置模板、签名证书、只读启动镜像等生命周期内绝不该变更的内容
根文件系统级只读(嵌入式/安全加固场景)
适用于路由器、IoT设备或高安全要求服务器,确保系统运行时根分区不可篡改。
- 启用 overlayroot:通过 OverlayFS 将真实根挂为只读,所有运行时写入都落在内存或tmpfs临时层
- 启动参数添加 overlayroot=tmpfs 或配置 /etc/overlayroot.conf
- 效果:重启即还原,杜绝持久化恶意修改,适合无状态部署











