NFS(Network File System)是一种分布式文件系统协议,允许网络中的计算机之间共享文件和目录。在配置NFS时,/etc/exports文件中的每一行代表一个共享规则,这些规则由一系列参数组成,用于控制如何共享特定的目录。下面是几个常见NFS参数的解读:

  • 共享路径和主机范围
  • /path/to/share:指定要共享的目录路径。
  • *(或者特定IP/子网):定义哪些客户端可以访问此共享。星号*表示允许所有主机访问,也可以指定具体的IP地址或子网范围,如192.168.1.0/24
  • 常用访问控制参数
  • rw:允许客户端对该共享进行读写操作。
  • ro:客户端只能进行只读访问。
  • 同步与异步模式
  • sync:要求数据在被确认写入服务器的硬盘后,才能返回写成功的信息给客户端,保证数据的一致性,但可能会稍微影响性能。
  • async:数据可以先被确认写入,服务器不必等待数据实际写入硬盘就返回成功信息,提高了响应速度,但在系统崩溃时可能丢失数据。
  • 权限与用户映射
  • no_root_squash:访问共享的远程root用户保留其root权限,而不是像默认那样被映射为匿名用户(通常是nfsnobody)。
  • root_squash:默认设置,将远程root用户的请求映射为匿名用户,限制其权限。
  • all_squash:不管远程访问用户是谁,都将其映射为匿名用户。
  • 其他高级选项
  • no_subtree_check:禁用子目录检查,可以提高性能,但有可能在某些情况下导致错误的权限处理。
  • secure:限制客户端只能通过端口1024以下发起连接(较旧且较少使用)。
  • insecure:允许从任何端口发起连接。
  • fsid=<number>:为共享分配一个文件系统ID,当服务器导出多个共享时用于区分。