跳转到主内容

在集群模式 Data ONTAP 中设置 CIFS 和名称映射时的重要注意事项

Views:
11
Visibility:
Public
Votes:
0
Category:
data-ontap-8
Specialty:
core
Last Updated:

适用于

  •   集群模式 Data ONTAP 8    
  •   集群模式 Data ONTAP 8.1    
  •   集群模式 Data ONTAP 8.2 

解答

在集群模式 Data ONTAP 中设置 CIFS 和名称映射时的重要注意事项。

注意 1 : CIFS 对 NTFS 安全类型卷的访问始终需要将 CIFS 用户映射到 UNIX UID (这适用于所有 Data ONTAP 版本)。

用户通过任何类型卷上的 CIFS 访问文件时,都需要将 CIFS 用户映射到存储系统已知的现有 UNIX 用户。这最初可能看起来不直观、但考虑到 Data ONTAP 文件系统仍然基于 UNIX 、并且需要具有关联的 UNIX UID 和 GID 以允许任何访问、即使这些 ID 不能确定权限也会变得更清楚。如果不映射到现有 UNIX 用户、即使在 NTFS 安全类型卷上、 CIFS 对共享的访问也将被拒绝。设置此设置的建议方法如下:

  • 在虚拟服务器上设置默认 UNIX 用户:

vserver cifs options modify -vserver <vserver name> -default-unix-user <user to map to, e.g. pcuser>

现在,请确保存在默认映射用户和用户的默认组。最简单的方法是在本地创建它们、假设虚拟服务器 NS-Switch 设置包括文件。(您可以通过 vserver show 查看此设置)

vserver services unix-user create pcuser -id 65534 -primary-gid 65534
vserver services unix-group create pcuser -id 65534

注:如果不执行上述操作、则不会授予 CIFS 访问权限、而不管卷安全模式如何、除非每个需要访问权限的 CIFS 用户都有特定的映射。

注意 2 : Data ONTAP (任何版本)不映射组或 GID

不能将 CIFS 用户映射到 GID 或 UNIX 用户映射到 Active Directory ( AD )中的组。同样,不能将 GID 映射到 AD 中的组或用户,也不能将 AD 组映射到 UNIX UID 或 GID。我们要映射的用户组对映射用户的权限有影响。

例如:
AD 用户 DomainJohn 使用 UID 501 映射到特定的 UNIX 用户 John 。通过本地 UNIX 用户表 NIS 或 LDAP 、此用户是其主组用户 (GID 500) 、次组 Engr (组 30 )和 Wheel (GID 0) 的成员。UNIX 安全样式卷中的文件夹或文件的修改位、作为这 3 个组成员的大用户在进入 CIFS 共享时也会向 John 授予这些访问权限。 

虽然没有组映射、但可以将一组单个用户映射到特定用户。此外,可以使用正则表达式来使其更方便地工作。

例如:
所有以单词 sales 开头或结尾的 AD 用户都可以映射到特定的 UNIX 用户和用户的 UID 。为了实现这一目的、可以重命名 AD 中的某些用户、并且可以在名称映射表中使用正则表达式来有效地模拟组操作。也可以执行反向操作。


注意 3 : Data ONTAP 8.0 、 8.1 和 8.2 集群模式中的 CIFS 访问需要 AD 服务器

CIFS 对虚拟服务器的访问要求在该虚拟服务器上配置 AD 服务器。此外、存储系统需要 AD 来确定 CIFS 访问权限、但如果没有配置的 AD 、则不允许 CIFS 访问。在 8.2 中、可以配置本地用户和组、但仍需要 AD 连接才能在虚拟服务器上创建 CIFS 服务。

注意:这与 Data ONTAP 7G/8 7- 模式不同,其中本地 CIFS 帐户可以存在并允许访问。

虽然其他 LDAP 类型的服务器不能取代 AD 服务器来进行 CIFS 访问、但也可以使用其他 LDAP 服务器集中映射 UNIX 和 AD 用户、从而允许映射 CIFS 访问 UNIX 安全类型的卷,反之亦然。


注意事项 4 :混合协议 NAS 访问不需要混合安全类型卷

注意:在大多数情况下,建议不要使用混合安全类型卷。

通过用户的正确映射、可以将 CIFS 访问映射到 UNIX 安全卷并将 NFS 访问映射到 NTFS 安全样式卷。将 CIFS 直接映射到 UNIX 安全类型卷或 NFS 映射到 NTFS 安全样式卷实际上是首选使用混合安全类型卷。使用混合安全类型卷会增加复杂性、例如在使用期间对文件和交换机的有效安全性以及在使用期间对模块位和 ACL 的有效安全性(通常不需要这样做)、因为这会导致访问权限和限制不一致。


注意 5 :用户映射可以在没有虚拟服务器名称映射表中的任何条目的情况下完美运行

默认情况下,当用户通过 CIFS 或 NFS 访问时、如果 UNIX 用户表中存在匹配项(或者如果在 NIS 或非 AD LDAP 中配置)、名称映射将完全透明(除非 UserMap 中有一个条目覆盖此条目)。

例如:
如果 UNIX 用户存在于名为 'xxxxx' 和 UID 1001 的虚拟服务器上、并且 AD 中存在具有相同名称的用户(说 DomainXXXXX )、 然后, UID 为 1001 的 UNIX 用户将被映射到 NTFS 安全样式卷中 NFS 客户端的用户 DomainXXXXX 、 AD 用户 DomainXXXXX 将被映射到 UNIX 安全样式卷上 CIFS 共享中的 UID 1001 。


注意 6 :在集群模式 Data ONTAP 8.0 和 8.1 中、如果在通过 CIFS 直接访问文件夹时连接树中有父卷、则其访问限制可能会影响 CIFS 共享访问。

注:此要求已从 Data ONTAP 8.1.2 及更高版本中删除。

所有 CIFS 用户都必须映射到 UID 才能访问。如果共享位于不是虚拟服务器根卷的卷中、则所有位于连接树中共享卷之上的文件夹和卷都必须为映射用户提供执行权限才能访问 CIFS 。

例如:
CIFS 共享是在 Vserver at /stage/rev2 上创建的。在此处、修订版 2 是 NTFS 安全类型卷、访问共享的用户将映射到默认 PCUser 。要使此用户具有访问权限、根卷( / )和暂存目录或辅助卷( / 暂存)都需要为 PCUser 提供执行权限。

在所有可能性中、 MOD 位(每个人)必须至少为 1 、但 5 或 7 也能正常工作。
例如:
父卷上的 unix 权限将设置为至少 ------x 。无论虚拟服务器中的共享位置如何,这是一项要求。请记住,如果对根卷进行更改,则在 LS 镜像更新之后才会生效。

如果连接树中的所有卷都是 NTFS 安全类型、包括根卷(以及它的 LS 镜像)、则不适用。


注意事项 7 :要成功设置 CIFS ,需要在 DC 上提供 SMB1 支持。这适用于集群模式 Data ONTAP 的所有版本。  这不适用于 Data ONTAP 7- 模式。

如何映射工作 1 : AD 用户访问 UNIX 安全样式卷上的 CIFS 共享、映射到 UNIX 用户。

在这种情况下、用户通过 CIFS 共享在具有 UNIX NFS 客户端的 UNIX 卷上写入文件。在此环境中执行映射的方式如下:

  • Windows 客户端发送一个 SID 以进行访问。

例如:
S-1-5-21-3623811015-3361044348-30300820-513 。

  • 存储系统在 AD 上搜索并标识此 SID 并将其与用户名匹配、例如 DomainXXXXX 。
  • 然后,存储系统将在 UserMap 表中搜索条目或表达式、以将名称与此用户名匹配。

如果存在规则、它将映射到 UNIX 用户。如果不是,存储系统将在其本地 UNIX 用户表、 LDAP 或 NIS 用户数据库中搜索匹配的 UNIX UID (删除域 ID 以匹配名称)。查找顺序基于可以在虚拟服务器上设置的设置。运行 vserver show -fields ns -switch 命令以显示当前订单。

  • 如果存储系统在 UNIX 用户表中找到等效用户、它会将 AD 用户映射到该本地用户。

例如:
对于 DomainXXXXX ,它会找到相应的用户 XXXXX 。
如果未找到用户、则查找特定于虚拟服务器的默认 UNIX 用户(如果遵循上述建议设置)。

  • 根据上述步骤、确定映射用户的匹配 UNIX UID 、然后使用该 UID 确定访问权限。然后,存储系统将该 UID 用作任何新创建的文件的 UID (该用户的默认 GID 将是新创建文件的 GID )。您可以在上面的示例中、将映射的 UNIX 用户 'xxxxx' 获取存储系统上的 UID 1001 。
    • 默认情况下,通过 UNIX qtree 上的 CIFS 共享创建的文件的 UNIX 模式权限位(例如 644 或 rw-r--r-- )是从父文件夹权限继承的。通过向共享中添加常规的 umask 、 file-umask 和 / 或文件夹 umask 设置,可以更严格地限制这些设置。运行 CIFS 共享修改命令以设置这些内容。
  • 如果 UNIX NFS 客户机通过 NFS 读取文件、它将根据客户机上的口令文件、 NIS 、 LDAP 或其他名称服务配置将看到的 UID 映射到用户名。如果所有设置都正确,则应该有一个将 UID 1001 映射回 XXXXX 的条目。因此,当从客户端读取文件时,所有权将报告为同一用户。

在 AD 环境中、域用户名始终映射到存储系统或与域绑定的任何主机上的同一 SID 。UNIX 客户端可能不会始终使用中央目录(如 NIS 或 LDAP )来确保所有要执行 UID 映射的用户在整个环境中是一致的。当存储系统将 AD 用户映射到 UNIX UID 时、如果 UNIX 客户端的密码文件与虚拟服务器上的 UNIX 用户表不匹配、则在从这些客户端查看 NFS 导出时、文件所有权和权限仍会意外变为意外。该文件可能会将 AD 用户 DomainXXXXX 映射到 UID 1001 、但是如果 NFS 客户端具有一个密码项、该项将 1001 映射到 'yyyyy' 、则由 DomainXXXXX 在 UNIX 安全样式卷上通过 CIFS 创建的文件就像该客户端的 'yyyyy' 所拥有的文件一样。因此,确保所有客户端都具有存储系统用于避免这种混淆的相同用户到 UID 映射(在其密码文件中)非常重要。


如何映射工作 2 : NFS 客户端上的用户访问 NTFS 安全样式卷上的 NFS 导出、映射到 AD 用户

在这种情况下、用户通过 NFS 在具有 Solaris NFS 客户端的 NTFS 安全样式卷上写入文件。在此环境中执行映射的方式如下:

  • NFS 客户机( UNIX 系统)会根据口令文件 NIS 或 LDAP 将当前用户映射到其 UID 。它将此 UID 作为要在存储系统上写入文件的 UID 发送。
  • 存储系统会采用此 UID 并根据 Unix-user 表、 NIS 或 LDAP 将其映射到用户名。

此查找顺序基于可在虚拟服务器上设置的设置。运行 <<vserver show -fields ns -switch> 命令以显示当前顺序。

  • 如果存储系统要在 unix-user 表、 NIS 或 LDAP 中查找 UID 的条目、则会将默认用户应用于 unixaccess 。运行 vserver NFS show 命令查找用户。
  • 存储系统使用此名称并在 UserMap 表中查找与该名称匹配的条目 / 表达式。

如果存在规则、它将相应地映射到域用户。如果不是,它会查询域控制器以获取用户名的 SID 。
示例:
附加的域名在映射 XXXXX 时将查找 DomainXXXXX 。 •

  • 然后将使用 AD 中报告的 SID 来确定访问权限以及新创建文件的所有权。在创建或修改文件时、某些 UNIX 应用程序(如 vim )会尝试在文件创建过程中修改 UNIX 样式权限。这将会失败,因为卷具有 NTFS 安全样式集、而 UNIX 模式位更改不相关。同样、尝试更改文件的安全描述符 chmod 通常会在此情形中报告 a 。可以将存储系统配置为忽略这些尝试而不是报告。因此、诸如 vim 之类的程序将会正常运行、 chmod 不会在 NTFS 安全样式卷上报告(尽管也不会更改权限)。要启用此静默忽略、请在导出卷的 " 导出策略规则 " 中将 ntfs-unix-security-ops 设置为忽略(在高级级别权限下可以看到)。


映射如何工作 3 : UserMapping 表

使用名称映射表可以映射不自动映射的用户。这适用于虚拟服务器所在域之外的受信任域中的用户、或其 UNIX 名称与 Windows 名称不匹配的用户(例如,由于区分大小写)。这也可用于映射用户组的正则表达式的帮助。

其他信息

有关名称映射疑难解答的详细信息,请参见以下文章:

了解多协议环境中的名称映射

如何在集群模式 Data ONTAP 中创建和理解虚拟服务器名称映射规则