跳到主要内容

如何处理超级用户访问请求

在配置导出策略时,需要考虑当存储系统收到的客户端访问请求中的用户标识为 0(即用户为超级用户)时应如何处理,并且相应设置导出规则。

在 UNIX 环境中,用户标识为 0 的用户称为超级用户(通常称为根用户),这种用户在系统中具有不受限制的访问权限。使用超级用户权限可能非常危险,原因有几种,包括危及系统和数据安全。

默认情况下,ONTAP 将提供的用户标识为 0 的客户端映射为匿名用户。但是,可指定导出规则中的 - superuser 参数以确定如何根据安全类型处理提供的用户标识为 0 的客户端。下面是 -superuser 参数的有效选项:

  • any
  • none

    这是不指定 -superuser 参数时的默认设置。

  • krb5
  • ntlm
  • sys

提供的用户标识为 0 的客户端的处理方法有两种,具体取决于 -superuser 参数配置:

如果 -superuser 参数和客户端安全类型...则客户端...
匹配获取超级用户访问权限且用户标识为 0。
不匹配获取访问权限,并作为用户标识由 -anon 参数及其分配的权限指定的匿名用户。

这不考虑选项 none 是只读参数还是读写参数指定的。

如果用户标识为 0 的客户端访问 NTFS 安全模式的卷,并且 -superuser 参数设置为 none,则 ONTAP 使用匿名用户的名称映射获取正确的凭证。

示例

导出策略中包含一个导出规则和以下参数:

  • -protocol nfs3
  • -clientmatch 10.1.16.0/255.255.255.0
  • -rorule any
  • -rwrule krb5,ntlm
  • -anon 127

客户端 1 的 IP 地址为 10.1.16.207,用户标识为 746,使用 NFSv3 协议发送访问请求,并使用 Kerberos v5 认证过。

客户端 #2 的 IP 地址为 10.1.16.211,用户标识为 0,使用 NFSv3 协议发送访问请求,并使用 AUTH_SYS 认证过。

客户端访问协议和 IP 地址与两个客户端都匹配。无论客户端使用何种安全类型进行认证,只读参数都会对所有客户端允许只读访问权限。但是,仅客户端 1 获得了读写访问权限,原因是客户端 1 使用经核准的安全类型 Kerberos v5 进行认证。

客户端 2 无法获取超级用户权限。而是映射到匿名,因为未指定 -superuser 参数。这意味着默认设置为 none 并自动将用户标识 0 映射到匿名。客户端 2 也仅获取只读访问权限,因为其安全类型与读写参数不匹配。

示例

导出策略中包含一个导出规则和以下参数:

  • -protocol nfs3
  • -clientmatch 10.1.16.0/255.255.255.0
  • -rorule any
  • -rwrule krb5,ntlm
  • -superuser krb5
  • -anon 0

客户端 1 的 IP 地址为 10.1.16.207,用户标识为 0,使用 NFSv3 协议发送访问请求,并使用 Kerberos v5 认证过。

客户端 #2 的 IP 地址为 10.1.16.211,用户标识为 0,使用 NFSv3 协议发送访问请求,并使用 AUTH_SYS 认证过。

客户端访问协议和 IP 地址与两个客户端都匹配。无论客户端使用何种安全类型进行认证,只读参数都会对所有客户端允许只读访问权限。但是,仅客户端 1 获得了读写访问权限,原因是客户端 1 使用经核准的安全类型 Kerberos v5 进行认证。客户端 2 无法获取读写访问权限。

此导出规则允许用户标识为 0 的客户端拥有超级用户访问权限。客户端 1 获取超级用户访问权限,因为其与只读和 -superuser 参数的用户标识和安全类型匹配。客户端 2 无法获取读写或超级用户访问权限,因为其安全类型与读写参数或 -superuser 参数不匹配。而是将客户端 2 映射到匿名用户,即本示例中用户标识为 0 的用户。