16.9. 为用户和组同步 POSIX 属性

所有可能的用户和属性的子集都会在 Active Directory 和 Red Hat Directory Server 之间同步。有些属性被映射,其中 Active Directory 和 Directory Server 模式之间存在区别,有些属性则直接匹配。同步的属性(匹配和映射)列在 第 16.5.1 节 “在 Directory 服务器和 Active Directory 之间同步的用户属性”第 16.6.2 节 “目录服务器和 Active Directory 之间的组属性”
默认情况下,仅同步这些属性。
该同步列表中缺少的一个属性是任何与 POSIX 相关的属性。在 Linux 系统中,系统用户和组被识别为 POSIX 条目,LDAP POSIX 属性包含所需信息。但是,当 Windows 用户同步时,它们会自动添加 ntUserntGroup 属性,以将其识别为 Windows 帐户,但没有同步 POSIX 属性(即使它们存在于 Active Directory 条目中),并且没有在 Directory Server 端添加 POSIX 属性。
Posix Winsync API 插件在 Active Directory 和 Directory Server 条目之间同步 POSIX 属性。
注意
所有 POSIX 属性(如 uidNumbergidNumberhomeDirectory)都会在 Active Directory 和 Directory Server 条目之间同步。但是,如果将新的 POSIX 条目或 POSIX 属性添加到目录服务器中的现有条目,则只有 POSIX 属性与 Active Directory 对应的条目同步。POSIX 对象类(posixAccount 用于用户,posixGroup 用于组)不会添加到 Active Directory 条目中。

16.9.1. 启用 POSIX 属性同步

Posix Winsync API 插件默认禁用,且必须启用 POSIX 属性才能从 Active Directory 用户和组条目同步到对应的目录服务器条目。
启用 Posix Winsync API 插件:
  1. 启用插件:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin "cn=Posix Winsync API,cn=plugins,cn=config" enable
  2. 重启实例:
    # dsctl instance_name restart

16.9.2. 更改 Posix 组属性同步设置

可以设置多个插件属性,来控制 POSIX 组属性和组成员如何从 Active Directory 条目同步到对应的目录服务器组和用户条目。详情请查看 红帽目录服务器配置、命令和文件参考 中的对应部分
默认值可用于大多数部署,但可以根据 Active Directory 环境更改设置。例如,启用嵌套组映射:
  1. 使用以下命令启用嵌套组映射:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin posix-winsync set --map-nested-grouping="true"
  2. 重新启动目录服务器以加载新配置。
    # dsctl instance_name restart

16.9.3. 修复 posixGroup 条目中的 Mismatched member 和 uniqueMember Attribute 值

如果 Directory 服务器和 Active Directory (AD)上的 posixGroup 条目中的 memberuniqueMember 属性值不匹配,请使用 dsconf plugin posix-winsync fixup 命令来解决这个问题:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin posix-winsync fixup DN
此命令在 Directory 服务器上重新创建 memberUid 值,并自动修改 memberuniqueMember 属性值,以匹配 AD 中定义的值。
(可选)将 -f filter 参数传给命令,以指定命令应该修复 memberUid 属性中的条目。如果没有过滤器,命令对包含 inetuserinetadminnsmemberof 对象类的所有条目进行操作。