适用场景
NAS 最容易出两类事故:误删(共享目录被执行 rm -rf)和权限混乱(所有人都有全权限)。解决办法不复杂:权限按角色分、快照定期打、配额按需限、恢复流程演练过。
配置步骤(NFS 共享与权限)
# 1) 服务端导出(/etc/exports 示例)
/data/project 172.16.1.0/24(rw,sync,no_subtree_check,root_squash)
/data/public 172.16.1.0/24(ro,sync)
# 2) 生效与查看
exportfs -rav
exportfs -v
showmount -e 172.16.1.20
# 3) 客户端挂载
mount -t nfs4 -o rw,hard,timeo=60,retrans=2,vers=4.1 172.16.1.20:/data/project /mnt/project
# 4) 权限校验(用普通账号,不要用 root 试)
su - normaluser -c 'touch /mnt/project/test.txt && rm -f /mnt/project/test.txt'
# 5) 常见坑
# - root_squash 导致 root 写入被拒(这是预期行为,别急着改 no_root_squash)
# - 客户端 NFS 版本与服务端不一致,出现权限位错乱
# - 硬挂载在存储不可用时会让进程卡住(关键服务要评估)
关键参数与建议
- 权限模型:按「部门/项目」建共享,按组授权,禁止 777 与匿名读写
- 账号来源:优先接 AD/LDAP 统一认证,避免本地账号散落
- 快照策略:核心共享每天 2-4 次 + 保留 30 天,快照前确认容量开销
- 配额:按共享/用户设置硬配额,防止单个目录撑爆存储
- 回收站:启用快照或回收站,误删可自助恢复,减少运维工单
- 网络:走独立存储网段或专网,NFS/SMB 不要暴露到公网
- 客户端挂载:Linux 用 NFSv4 + 硬挂载参数要谨慎,Windows 用域账号映射盘符
- 恢复演练:每季度实际恢复一次目录,验证快照可用
容易踩的坑
- 图省事配 no_root_squash + 777,任何一台中毒机器都能删全量数据
- 导出网段写成 0.0.0.0/0,共享暴露到办公网甚至公网
- 客户端用 soft 挂载读取关键数据,网络抖动后数据静默损坏
- 服务端改了导出没重新 exportfs,客户端行为与预期不一致
- 用 root 测试权限「能写」,普通用户实际写不进去
- NFS 与 SMB 同时共享同一目录,权限位互相覆盖
验证与巡检
# 导出与挂载
showmount -e 172.16.1.20
mount | grep nfs
# 服务端导出日志与错误
journalctl -u nfs-server --since '1 hour ago'
# 权限实测(用业务账号)
id normaluser
su - normaluser -c 'ls -l /mnt/project | head'
- 巡检:导出网段最小化、无 777、root_squash 开启、业务账号读写实测通过
小结
NAS 运维验收:普通用户误删能在 10 分钟内自助或半自助找回,权限表一页说清谁能访问哪个共享,配额告警有人处理。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。