此部分包含以下主题:
有关 NFS 协议的更多信息,请参见以下主题:
有关其他受支持协议的信息,请参见以下各节:
每个共享资源都有特定于协议的属性,这些属性定义了不同的协议针对该共享资源的行为。可以为每个共享资源定义这些属性,也可以从共享资源的项目继承这些属性。下表显示了 NFS 协议属性和可能的值。
|
通过设置客户机特定的共享模式或例外情况,可为客户机或客户机集合定义全局共享模式的例外情况。要限制特定客户机的访问,请将全局共享模式设置为 none,然后向逐级缩小的组授予逐级增大的访问权限。例如,可以创建一个共享资源,将其全局共享模式设置为 none(无),即拒绝所有客户机的访问;然后向一部分客户机授予只读访问权限。您还可以更进一步向更少的一部分客户机授予读写访问权限,最终,只有受信任的主机可能具有读写访问权限及 root 支持的访问权限。
客户机特定的共享模式优先于全局共享模式。系统会根据例外情况中指定的客户机特定的共享模式向客户机授予访问权限。如果未定义例外情况,将根据全局共享模式向客户机授予访问权限。
|
对于每个客户机或客户机集合,请指定客户机对共享资源有只读还是读-写权限。如果要设置 NFS 例外情况,还要指定客户机有 root 用户权限还是视作没有 root 用户权限的用户。
网络组可用于控制对 NFS 导出的访问权限。但是,网络组的管理可能很复杂。请考虑改用 IP 子网规则或 DNS 域规则。
如果使用网络组,则将通过 NIS 或 LDAP 解析它们,具体取决于启用了哪个服务。如果使用 LDAP,则每个网络组必须位于默认位置 ou=Netgroup,(Base DN),并且必须使用标准模式。
网络组条目的用户名组件通常不会影响 NFS;只有主机名有意义。网络组中包含的主机名必须是规范化的,如果使用 DNS 进行解析,则必须是全限定的。也就是说,NFS 子系统将尝试验证请求方客户机的 IP 地址是否可以解析为与指定的 FQDN,或与指定的网络组之一的某个成员匹配的规范化主机名。该匹配必须为严格匹配,包括所有域组件;否则,将不会匹配该例外并将尝试下一个例外。有关主机名解析的更多信息,请参见 DNS。
从 2013.1.0 软件发行版开始,UNIX 客户机用户最多可以属于 1024 个组,而性能丝毫不减。在以前的发行版中,每个 UNIX 客户机用户最多可以属于 16 个组。
在 CLI 中,所有 NFS 共享模式和例外都是通过针对 sharenfs 属性使用单个选项字符串指定的。此字符串是逗号分隔的值列表。作为针对 BUI 介绍的全局共享模式的对应体,它应以 ro、rw、on 或 off 之一开头。
|
以下示例将所有客户机的共享模式设置为只读。所有客户机上的 root 用户将如同普通 "nobody" 用户一样访问共享资源上的文件。
set sharenfs=ro
此外,还将附加 nosuid 和 anon 中的其中一个选项或两者。因此,要将所有未知用户的映射定义为 uid 153762,您可以指定以下内容:
set sharenfs="ro,anon=153762"
可以通过附加 "option=collection" 格式的文本(其中 "option" 是 ro、rw 或 root 中的一个,定义将授予客户机集合的访问权限类型)来指定更多的 NFS 例外情况。客户机集合是由“客户机类型”表中的前缀字符,以及一个 DNS 主机名/域名或 CIDR 网络号指定的。例如,要授予对 sf.example.com 域中的所有主机的读写权限,并授予对 192.168.44.0/24 网络中的主机的 root 权限,您可以使用:
set sharenfs="ro,anon=153762,rw=.sf.example.com,root=@192.168.44.0/24"
在任何可以使用单个全限定主机名的位置中都可以使用网络组名称。例如,您可以通过以下方式允许对 "engineering" 网络组进行读写访问:
set sharenfs="ro,rw=engineering"
通常情况下,不指定用于文件名的字符集编码。NFSv3 和 NFSv2 协议没有指定字符集。NFSv4.0 和 NFSv4.1 应该使用 UTF-8,但不是所有的客户机都如此,而且服务器并未实施此限制。如果为共享资源禁用了 "UTF-8 only" 选项,则在不知道文件名编码的情况下会将文件名按原样写入文件系统。这意味着只有使用相同编码的客户机才能解释这些文件名。不过,SMB 要求将文件名存储为 UTF-8,以便在服务器端可以解释它们。这使得无法在允许通过 SMB 进行访问的同时支持任意客户机编码。
要支持这样的配置,可以在共享资源范围内或以客户机为单位设置字符集编码。支持以下字符集编码:
|
默认行为是不指定字符集编码(直通)。BUI 允许通过标准例外列表机制选择字符集。在 CLI 中,每个字符集本身成为了具有一个或多个主机的选项,使用 "*" 表示共享资源范围内的设置。例如,以下示例:
hostname:shares default> set sharenfs="rw,euc-kr=*"
将以 "euc-kr" 作为默认编码来共享文件系统。以下示例:
hostname:shares default> set sharenfs="rw,euc-kr=host1.domain.com,euc-jp=host2.domain.com"
为 "host1" 和 "host2" 之外的所有客户机使用默认编码,这两台客户机分别使用 "euc-kr" 和 "euc-jp"。主机列表的格式遵循其他 CLI NFS 选项的格式。
请注意,某些 NFS 客户机无法正确支持备用语言环境;有关详细信息,请查阅 NFS 客户机文档。
安全模式以共享资源为单位进行设置。以下列表介绍了 Kerberos 安全设置:
krb-通过 Kerberos V5 进行最终用户验证
krb5i-krb5 加完整性保护(数据包是防篡改的)
krb5p-krb5i 加隐私保护(数据包是防篡改而经过加密的)
可以通过附加 "option=mode" 格式(其中,option 是 sec,mode 是安全设置)的文本来指定安全模式。例如:
hostname: shares default> set sharenfs="sec=krb5"
Kerberos 类型的组合可以在安全模式设置中指定。组合安全模式允许客户机使用所列出的任一种 Kerberos 类型进行挂载,如下表中所示。
|
保留端口
要为系统验证设置保留的端口,请按以下示例所示使用 resvport:
set sharenfs="sec=sys,rw,resvport"
请注意,resvport 只能与系统验证安全模式 sec=sys 一起使用。