Menu Close

7.6. 自动为 AD 用户映射私有组的选项:POSIX 信任

Linux 环境中的每个用户都有一个主用户组。Red Hat Enterprise Linux(RHEL)使用用户私有组(UPG)模式:UPG 与其创建的用户的名称相同,并且该用户是 UPG 的唯一成员。

如果您已为 AD 用户分配了 UID,但没有添加 GID,您可以通过调整该 ID 范围的 auto_private_groups 设置来根据其 UID 将 SSSD 配置成自动为用户映射私有组。

默认情况下,auto_private_groups 选项对于 POSIX 信任中使用的 ipa-ad-trust-posix ID ranges 被设为 false。使用此配置,SSSD 会从每个 AD 用户条目中检索 uidNumbergidNumber

auto_private_groups = false

SSSD 将 uidNumber 值分配给用户的 UID,将 gidNumber 分配给用户的 GID。AD 中必须存在具有此 GID 的组,否则无法解析该用户。下表显示了您是否能够根据不同的 AD 配置解析 AD 用户。

表 7.2. 当 POSIX ID 范围的 auto_private_groups 变量设为 false 时 SSSD 的行为

AD 中的用户配置id username 的输出

AD 用户条目有:

  • uidNumber = 4000
  • gidNumber 未定义
  • 在 AD 中没有 gidNumber = 4000 的组。

SSSD 无法解析用户。

AD 用户条目有:

  • uidNumber = 4000
  • gidNumber = 4000
  • 在 AD 中没有 gidNumber = 4000 的组。

SSSD 无法解析用户。

AD 用户条目有:

  • uidNumber = 4000
  • gidNumber = 4000
  • AD 有 gidNumber = 4000 的组。

# id aduser@AD-DOMAIN.COM uid=4000(aduser@ad-domain.com)gid=4000(adgroup@ad-domain.com)groups=4000(adgroup@ad-domain.com), …​

如果 AD 用户没有在 AD 中配置的主组,或者其 gidNumber 不对应于现有的组,则 IdM 服务器将无法正确解析该用户,因为它无法查找用户所属的所有组。要临时解决这个问题,您可以通过将 auto_private_groups 选项设为 true混合 来在 SSSD 中启用自动私有组映射:

auto_private_groups = true

SSSD 始终映射设置了 gidNumber 的私有组,以匹配 AD 用户条目中的 uidNumber

表 7.3. 当 POSIX ID 范围的 auto_private_groups 变量设为 true 时 SSSD 的行为

AD 中的用户配置id username 的输出

AD 用户条目有:

  • uidNumber = 4000
  • gidNumber 未定义
  • AD 没有 GID=4000 的组。

# id aduser@AD-DOMAIN.COM uid=4000(aduser@ad-domain.com)gid=4000(aduser@ad-domain.com)groups=4000(aduser@ad-domain.com), …​

AD 用户条目有:

  • uidNumber = 4000
  • gidNumber = 5000
  • AD 没有具有 gidNumber = 5000 的组。

# id aduser@AD-DOMAIN.COM uid=4000(aduser@ad-domain.com)gid=4000(aduser@ad-domain.com)groups=4000(aduser@ad-domain.com), …​

AD 用户条目有:

  • uidNumber = 4000
  • gidNumber = 4000
  • AD 没有 gidNumber = 4000 的组。

# id aduser@AD-DOMAIN.COM uid=4000(aduser@ad-domain.com)gid=4000(aduser@ad-domain.com)groups=4000(aduser@ad-domain.com), …​

AD 用户条目有:

  • uidNumber = 4000
  • gidNumber = 5000
  • AD 有 gidNumber = 5000 的组。

# id aduser@AD-DOMAIN.COM uid=4000(aduser@ad-domain.com)gid=4000(aduser@ad-domain.com)groups=4000(aduser@ad-domain.com), …​

auto_private_groups = hybrid

如果 uidNumber 值匹配 gidNumber,但没有具有此 gidNumber 的组,则 SSSD 会将私有组映射为用户的主用户组,其 gidNumberuidNumber 匹配。如果 uidNumbergidNumber 值不同,并且有一个具有此 gidNumber 的组,则 SSSD 会使用 gidNumber 的值。

表 7.4. 当 POSIX ID 范围的 auto_private_groups 变量设为 hybrid 时 SSSD 的行为

AD 中的用户配置id username 的输出

具有以下情况的 AD 用户条目:

  • uidNumber = 4000
  • gidNumber 未定义
  • AD 没有 gidNumber = 4000 的组。

SSSD 无法解析用户。

具有以下情况的 AD 用户条目:

  • uidNumber = 4000
  • gidNumber = 5000
  • AD 没有具有 gidNumber = 5000 的组。

SSSD 无法解析用户。

具有以下情况的 AD 用户条目:

  • uidNumber = 4000
  • gidNumber = 4000
  • AD 没有 gidNumber = 4000 的组。

# id aduser@AD-DOMAIN.COM uid=4000(aduser@ad-domain.com)gid=4000(aduser@ad-domain.com)groups=4000(aduser@ad-domain.com), …​

具有以下情况的 AD 用户条目:

  • uidNumber = 4000
  • gidNumber = 5000
  • AD 有 gidNumber = 5000 的组。

# id aduser@AD-DOMAIN.COM uid=4000(aduser@ad-domain.com)gid=5000(aduser@ad-domain.com)groups=5000(adgroup@ad-domain.com), …​