跳到主要内容

安全类型如何确定客户端访问级别

客户端经过认证的安全类型在导出规则中发挥特殊作用。您必须了解安全类型如何确定客户端对卷或 Qtree 的访问级别。

以下是三种可能的访问级别:

  1. 只读

  2. 读写

  3. 超级用户(适用于用户标识为 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 获得只读访问权限,但不是超级用户访问权限。