共享资源协议-NFS
表 12-7 共享资源协议-NFS 属性
|
|
|
Share mode(共享模式)
|
off/ro/rw
|
确定共享资源是只可用于读取、可用于读写,还是不可用于两者中的任何一个。在 CLI 中,"on" 是 "rw" 的别名。
|
Disable setuid/setgid file creation(禁止创建 setuid/setgid 文件)
|
nosuid
|
如果选择了此选项,则客户机将无法在设置了 setuid (S_ISUID) 和 setgid (S_ISGID) 位的情况下创建文件,也无法通过 chmod(2) 系统调用在现有文件上启用这些位。
|
Prevent clients from mounting subdirectories(阻止客户机挂载子目录)
|
nosub
|
如果选择了此选项,将会阻止客户机直接挂载子目录。将强制它们挂载共享资源的根目录。注意:这只适用于 NFSv2 和 NFSv3 协议,不适用于 NFSv4。
|
Anonymous user mapping(匿名用户映射)
|
anon
|
除非为特定客户机启用了 "root" 选项,否则,客户机上的 root 用户将被视为未知用户,且该用户对共享资源的文件的所有访问尝试将被视为具有此 uid 的用户的尝试。然后,将正常评估文件的访问位和 ACL。
|
Character encoding(字符编码)
|
请参见下文
|
为所有客户机设置默认的字符集。有关更多信息,请参见有关字符集编码的章节。
|
Security mode(安全模式)
|
请参见下文
|
为所有客户机设置安全模式。
|
|
可以为客户机或客户机集合定义整体共享模式的例外。当某个客户机尝试访问时,将根据列表中与该客户机匹配的第一个例外向其授予访问权限;或者,如果不存在这样的例外,则将根据上面定义的全局共享模式向其授予访问权限。可以使用以下三种类型之一定义这些客户机集合:
表 12-8 客户机集合类型
|
|
|
|
主机 (FQDN) 或网络组
|
无
|
其 IP 地址解析为指定的全限定名称的单个客户机,或包含客户机的 IP 地址解析为的全限定名称的网络组
|
caji.sf.example.com
|
DNS 域
|
.
|
其 IP 地址解析为以此后缀结尾的全限定名称的所有客户机
|
sf.example.com
|
网络
|
@
|
其 IP 地址位于指定的 IP 子网(以 CIDR 表示法表示)内的所有客户机
|
192.168.20.0/22
|
|
对于每个指定的客户机或客户机集合,您将表达两个参数:允许客户机对共享资源具有只读访问权限还是具有读写访问权限,以及是将客户机上的 root 用户视为 root 用户(如果被选中)还是视为未知用户。
如果使用网络组,则将首先通过NIS(如果已启用),然后再通过LDAP(如果已启用)解析这些网络组。如果使用 LDAP,则必须在默认位置 ou=Netgroup,(Base DN) 查找网络组,并且必须使用标准模式。网络组条目的用户名组件通常不会影响 NFS;只有主机名有意义。网络组中包含的主机名必须是规范化的,如果使用 DNS 进行解析,则必须是全限定的。也就是说,NFS 子系统将尝试验证请求方客户机的 IP 地址是否可以解析为与指定的 FQDN 或与指定的网络组之一的某个成员匹配的规范化主机名。该匹配必须为严格匹配,包括所有域组件;否则,将不会匹配该例外并将尝试下一个例外。有关主机名解析的更多信息,请参见DNS。网络组的管理可能比较复杂;如有可能,请考虑换用 IP 子网规则或 DNS 域规则。
从 2013.1.0 软件发行版开始,Unix 客户机用户最多可以属于 1024 个组,而性能丝毫不减。在以前的发行版中,每个 Unix 客户机用户最多可以属于 16 个组。
共享资源协议-CLI
在 CLI 中,所有 NFS 共享模式和例外都是通过针对 "sharenfs" 属性使用单个选项字符串指定的。该字符串是上表中值的逗号分隔的列表。作为针对 BUI 介绍的全局共享模式的对应体,该字符串应该以 "ro"、"rw" 或 "off" 之一开头。例如,
set sharenfs=ro
将所有客户机的共享模式设置为只读。所有客户机上的 root 用户将如同普通 "nobody" 用户一样访问共享资源上的文件。
此外,还将附加 "nosuid" 和 "anon" 中的其中一个选项或两者。请记住,在 CLI 中,必须将包含 "=" 字符的属性值加上引号。因此,要将所有未知用户的映射定义为 uid 153762,您可以指定
set sharenfs="ro,anon=153762"
可以通过附加 "option=collection" 格式的文本(其中 "option" 是 "ro"、"rw" 和 "root" 中的一个,定义将授予客户机集合的访问权限类型)来指定更多的例外。客户机集合是由上表中的前缀字符,以及一个 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"
可以通过附加 "option=mode" 格式(其中,option 是 "sec",mode 是 "sys"、"krb5"、"krb5:krb5i" 或 "krb5:krb5i:krb5p" 中的一个)的文本来指定安全模式。
set sharenfs="sec=krb5"
安全模式
安全模式是以共享资源为单位设置的并且可能会影响性能。下表介绍了 Kerberos 安全设置。
表 12-9 Kerberos 安全设置
|
|
krb5
|
通过 Kerberos V5 进行最终用户验证
|
krb5i
|
krb5 加完整性保护(数据包是防篡改的)
|
krb5p
|
krb5 加隐私保护(数据包是防篡改而经过加密的)
|
|
Kerberos 风格的组合可以在安全模式设置中指定。组合安全模式允许客户机使用所列出的任何 Kerberos 风格进行挂载。
表 12-10 安全模式设置
|
|
sys
|
系统验证
|
krb5
|
仅限 Kerberos v5-客户机必须使用此风格进行挂载。
|
krb5:krb5i
|
Kerberos v5,带有完整性-客户机可以使用所列出的任何风格进行挂载。
|
krb5i
|
仅限 Kerberos v5 完整性-客户机必须使用此风格进行挂载。
|
krb5:krb5i:krb5p
|
Kerberos v5,带有完整性或隐私-客户机可以使用所列出的任何风格进行挂载。
|
krb5p
|
仅限 Kerberos v5 隐私-客户机必须使用此风格进行挂载。
|
|
有关使用 NFS 和 Kerberos 的更多信息,请参见:
字符集编码
通常情况下,不指定用于文件名的字符集编码。NFSv3 和 NFSv2 协议没有指定字符集。NFSv4 应该使用 UTF-8,但不是所有的客户机都如此,而且服务器并未实施此限制。如果为共享资源禁用了 "UTF-8 only" 选项,则在不知道文件名编码的情况下会将文件名按原样写入文件系统。这意味着只有使用相同编码的客户机才能解释这些文件名。不过,SMB 要求将文件名存储为 UTF-8,以便在服务器端可以解释它们。这使得无法在允许通过 SMB 进行访问的同时支持任意客户机编码。
要支持这样的配置,可以在共享资源范围内或以客户机为单位设置字符集编码。支持以下字符集编码:
-
cp932
-
euc-cn
-
euc-jp
-
euc-jpms
-
euc-kr
-
euc-tw
-
iso8859-1
-
iso8859-2
-
iso8859-5
-
iso8859-6
-
iso8859-7
-
iso8859-8
-
iso8859-9
-
iso8859-13
-
iso8859-15
-
koi8-r
-
shift_jis
默认行为是不指定字符集编码(直通)。BUI 允许通过标准例外列表机制选择字符集。在 CLI 中,每个字符集本身成为了具有一个或多个主机的选项,使用 "*" 表示共享资源范围内的设置。例如,以下示例:
set sharenfs="rw,euc-kr=*"
将以 "euc-kr" 作为默认编码来共享文件系统。请注意以下内容:
set sharenfs="rw,euc-kr=host1.domain.com,euc-jp=host2.domain.com"
为 "host1" 和 "host2" 之外的所有客户机使用默认编码,这两台客户机分别使用 "euc-kr" 和 "euc-jp"。主机列表的格式遵循其他 CLI NFS 选项的格式。
请注意,某些 NFS 客户机无法正确支持备用语言环境;有关详细信息,请查阅 NFS 客户机文档。