NFS 版本 4 协议提供了几种文件共享模式,客户机可以使用这些模式控制其他客户机对文件的访问。客户机可以指定以下内容:
DENY_NONE 模式,用于允许其他客户机对文件进行读写访问。
DENY_READ 模式,用于拒绝其他客户机对文件进行读取访问。
DENY_WRITE 模式,用于拒绝其他客户机对文件进行写入访问。
DENY_BOTH 模式,用于拒绝其他客户机对文件进行读写访问。
Solaris NFS 版本 4 服务器完全实现了这些文件共享模式。因此,如果客户机尝试打开文件的方式与当前共享模式冲突,则服务器会通过使操作失败来拒绝此尝试。如果这类尝试在打开或创建操作开始时失败,则 Solaris NFS 版本 4 客户机会接收到一条协议错误消息。此错误会映射为应用程序错误 EACCES。
尽管此协议提供了几种共享模式,但目前 Solaris 中的打开操作不提供多种共享模式。打开文件时,Solaris NFS 版本 4 客户机只能使用 DENY_NONE 模式。
另外,尽管 Solaris fcntl 系统调用使用 F_SHARE 命令来控制文件共享,但是 fcntl 命令无法在 NFS 版本 4 中正常实现。如果在 NFS 版本 4 客户机上使用这些 fcntl 命令,则客户机会向应用程序返回一条 EAGAIN 错误消息。