Oracle® ZFS Storage Appliance 管理指南,发行版 2013.1.5.0

退出打印视图

更新时间: 2016 年 2 月
 
 

身份映射概念

SMB 服务使用身份映射服务来关联 Windows 和 Unix 身份。在 SMB 服务对用户进行验证时,它会使用身份映射服务将用户的 Windows 身份映射到相应的 Unix 身份。如果某 Windows 用户没有 Unix 身份,该服务会使用临时的 UID 和 GID 生成临时身份。这些映射可允许 SMB 和NFS客户机同时导出和访问一个共享资源。将 Windows 身份与 Unix 身份相关联之后,NFS 和 SMB 客户机便可共享相同身份,从而可访问相同的一组文件。

在 Windows 操作系统中,访问令牌包含登录会话的安全信息,并标识用户、用户组以及用户特权。管理员在工作组或 SAM 数据库(在Active Directory域控制器中进行管理)中定义 Windows 用户和组。每个用户和组都有一个 SID。SID 可唯一标识一个主机和一个本地域以及所有可能的 Windows 域中的用户或组。

Unix 根据用户验证和文件权限创建用户凭证。管理员在本地密码和组文件或者名称或目录服务(例如 NIS 和 LDAP)中定义 Unix 用户和组。每个 Unix 用户和组都有一个 UID 和一个 GID。通常,UID 或 GID 可唯一标识单个 Unix 域中的用户或组。但是,这些值在域之间并不是唯一的。

Windows 名称不区分大小写,Unix 名称区分大小写。用户名 JSMITH、JSmith 和 jsmith 在 Windows 中是相同的名称,但在 Unix 中则是三个不同的名称。大小写对名称映射有不同影响,具体取决于映射方向。

  • 为使从 Windows 到 Unix 的映射生成匹配项,Windows 用户名的大小写必须与 Unix 用户名的大小写匹配。例如,只有 Windows 用户名 "jsmith" 与 Unix 用户名 "jsmith" 匹配。Windows 用户名 "Jsmith" 则不匹配。

  • 有一个例外是,当映射使用通配符 "*" 映射多个用户名时,从 Windows 到 Unix 的映射不要求大小写匹配。如果身份映射服务遇到将 Windows 用户 *@some.domain 映射到 Unix 用户 "*" 的映射,它会先搜索与 Windows 名称完全相同的 Unix 名称。如果找不到匹配项,该服务会将整个 Windows 名称转换为小写形式,并再次搜索匹配的 Unix 名称。例如,Windows 用户名 "JSmith@some.domain" 映射到 Unix 用户名 "jsmith"。如果在将 Windows 用户名转换为小写形式之后,该服务还是找不到匹配项,则该用户没有映射成功。您可以创建一个规则来匹配只有大小写不同的字符串。例如,您可以创建一个特定于用户的映射,以将 Windows 用户 "JSmith@sun.com" 映射到 Unix 用户 "jSmith"。否则,该服务会将临时 ID 分配给 Windows 用户。

  • 为使从 Unix 到 Windows 的映射生成匹配项,大小写不必匹配。例如,Unix 用户名 "jsmith" 与含有 "JSMITH" 这几个字母(不考虑大小写)的任何 Windows 用户名均匹配。

在身份映射服务提供名称映射时,它会存储映射 10 分钟,之后映射便会过期。在 10 分钟的生命周期内,映射会在身份映射服务重新启动后保留。如果 SMB 服务器在映射已过期后请求对用户进行映射,该服务会重新计算映射。

在 10 分钟的映射生命周期内,对映射或名称服务目录的更改不会影响现有连接。仅当客户机尝试连接共享资源且没有未过期的映射时,该服务才会计算映射。

全域性映射规则会将 Windows 域中的部分或全部名称与 Unix 名称相匹配。两个域的用户名必须完全匹配(大小写冲突除外,具体取决于前面讨论的规则)。例如,您可以创建一个双向规则,以将 "myDomain.com" 中的所有 Windows 用户与同名的 Unix 用户相匹配(反之亦然)。再例如,您可以创建一个规则,以将 "myDomain.com" 中组 "Engineering" 中的所有 Windows 用户映射到同名的 Unix 用户。您无法创建与其他映射冲突的全域性映射。

如果没有适用于特定用户的基于名称的映射规则,将通过临时映射为该用户提供临时凭证,除非他们已被拒绝映射阻止。当拥有临时 Unix 名称的 Windows 用户在系统上创建一个文件时,使用 SMB 访问该文件的 Windows 客户机将认为该文件归该 Windows 身份所有。但是,NFS 客户机将认为该文件归 "nobody" 所有。