/etc/exports
and /etc/exports.d/
, lists the directories that are made available over the network (exported). For each NFS share, only the given list of machines is granted access. More fine-grained access control can be obtained with a few options. The syntax for this file is quite simple:
/directory/to/share machine1(option1,option2,...) machine2(...) ...
fsid=0
或 fsid=root
来识别。
*.falcot.com
这样的语法,或如 192.168.0.0/255.255.255.0
或 192.168.0.0/24
这样的 IP 地址来指定。
ro
选项)作为只读可用。 rw
选项允许读写访问。NFS 客户端典型地从限制为 root 的端口连接(换句话说,低于 1024);这个限制可以由 insecure
选项提升(secure
选项是隐性的,但如果需要清晰的话可以显性)。
sync
选项),服务器默认只回答 NFS 查询;这可以通过 async
选项来禁止。异步写入提高了一点性能,但降低了可靠性,因为在通知写入与真实写到磁盘上之间在服务器崩溃的情况下,存在数据丢失的风险。由于最近更改的默认值(与 NFS 的历史值相比),推荐显性的设置。
nobody
用户。这个行为符合 root_squash
选项,并且默认启用。禁止这个行为的 no_root_squash
选项是有风险的,并且应该只在受控的环境下使用。如果所有用户应该被映射到 nobody
用户上,那么使用 all_squash
。anonuid=uid
和 anongid=gid
选项允许指定另一个伪用户来使用,取代 UID/GID 65534 (这符合nobody
用户和 nogroup
组)。
sec
选项来指定想要的安全等级:sec=sys
是默认的,没有特定的安全特性,sec=krb5
只启用认证,sec=krb5i
添加了整体保护,而 sec=krb5p
是最完全的等级,包括隐私保护(带有数据加密)。为了让它工作,需要进行 Kerberos 设置(那个服务不包括在本书的范围内)。
mount
command and the /etc/fstab
file.
例 11.20. 在 /etc/fstab
文件中的 NFS 入口
arrakis.internal.falcot.com:/shared /srv/shared nfs4 rw,nosuid 0 0
/shared/
从 arrakis
服务器挂载到本地 /srv/shared/
目录中。这会需要读写访问(这样需要 rw
参数)。nosuid
选项是保护措施,从共享上存储的程序中擦除了任何 setuid
或 setgid
位。如果 NFS 共享只意味着存储文档,那么另一个推荐的选项是 noexec
,它防止执行共享上存储的程序。注意,在服务器上 shared
目录在 NFSv4 root export 之下(例如 /export/shared
),它不是顶层目录。