安全类型如何确定客户端访问级别
客户端经过认证的安全类型在导出规则中发挥特殊作用。您必须了解安全类型如何确定客户端对卷或 Qtree 的访问级别。
以下是三种可能的访问级别:
只读
读写
超级用户(适用于用户标识为 0 的客户端)
由于安全类型决定的访问级别是按此顺序评估的,因此您在导出规则中构建访问级别参数时,应遵守以下规则:
客户端要获得访问级别... | 这些访问参数必须与客户端安全类型匹配... |
---|---|
正常用户只读 | 只读(-rorule) |
正常用户读写 | 只读(-rorule)和读写(-rwrule) |
超级用户只读 | 只读(-rorule)和 -superuser |
超级用户读写 | 只读(-rorule)、读写(-rwrule)和 -superuser |
以下是对于这三种访问参数有效的安全类型:
- any
- none
- never
这些安全类型与 -superuser 参数配合使用无效。
- krb5
- krb5i
- krb5p
- ntlm
- sys
在针对这三种访问参数匹配客户端的安全类型时,有三种可能的结果:
如果客户端的安全类型... | 则客户端... |
---|---|
与访问参数中指定的类型匹配。 | 自身的用户标识获取该级别的访问权限。 |
不匹配指定的类型,但访问参数中包括选项 none。 | 获取该级别的访问权限,但作为匿名用户,用户标识由 -anon 参数指定。 |
不匹配指定的类型,访问参数中也不包括选项 none。 | 不会获得该级别的访问权限。 不适用于 -superuser 参数,因为该参数始终包含 none(即使未指定)。 |
示例
导出策略中包含一个导出规则和以下参数:
- -protocol nfs3
- -clientmatch 10.1.16.0/255.255.255.0
- -rorule any
- -rwrule sys,krb5
- -superuser krb5
客户端 1 的 IP 地址为 10.1.16.207,用户标识为 0,使用 NFSv3 协议发送访问请求,并使用 Kerberos v5 认证过。
客户端 #2 的 IP 地址为 10.1.16.211,用户标识为 0,使用 NFSv3 协议发送访问请求,并使用 AUTH_SYS 认证过。
客户端 #3 的 IP 地址为 10.1.16.234,用户标识为 0,使用 NFSv3 协议发送访问请求,未认证(AUTH_NONE)。
客户端访问协议和 IP 地址与三个客户端均匹配。只读参数会对所有客户端允许只读访问权限(无论安全类型)。读写参数允许客户端使用自身的用户标识(利用 AUTH_SYS 或 Kerberos v5 进行认证)进行读写访问。超级用户参数允许用户标识为 0 的客户端(利用 Kerberos v5 进行认证)获得超级用户访问权限。
因此,客户端 #1 可获得超级用户读写访问权限,因为它匹配所有三种访问参数。客户端 #2 获得读写访问权限,但不是超级用户访问权限。客户端 #3 获得只读访问权限,但不是超级用户访问权限。