适用场景

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 分钟内自助或半自助找回,权限表一页说清谁能访问哪个共享,配额告警有人处理。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。