第 2 章 将 IdM 客户端从 RHEL 7 升级到 RHEL 8

与 IdM 服务器不同,支持将 IdM 客户端从 RHEL 7 原位升级到 RHEL 8。

在 RHEL 8 中,一些不常用的选项和不使用的功能已从系统安全服务守护进程(SSSD)中删除,该服务负责 IdM 环境中的身份验证。有关删除这些选项的步骤,请参见以下小节。

2.1. 升级到 RHEL 8 后更新 SSSD 配置

将身份管理(IdM)客户端从 Red Hat Enterprise Linux (RHEL) 7 升级到 RHEL 8 后,某些 SSSD 配置选项可能不再支持。leapp upgrade 应用程序可能会在生成的预升级报告中提供有关此类选项的更多详情。

以下流程描述了如何更新 SSSD 配置来解决这些问题。

先决条件

  • 您已将 IdM 客户端从 RHEL 7 升级到 RHEL 8。
  • 你需要有 root 权限才能编辑 /etc/sssd/sssd.conf

2.1.1. 从 本地 ID 提供程序切换到 文件 ID 提供程序

如果您看到以下错误,请将 本地 ID 提供程序替换为 文件 ID 提供程序:

SSSD Domain "example.com": local provider is no longer supported and the domain will be ignored.
Local provider is no longer supported.

步骤

  1. 确保您通过 本地 ID 提供程序检索的任何用户和组也在 /etc/passwd/etc/group 文件中。这样可确保 文件 提供程序可以访问这些用户和组。

    1. 如果需要创建用户,请使用 useradd 命令。如果需要指定 UID,请添加 -u 选项:

      [root@client ~]# useradd -u 3001 username
    2. 如果需要创建组,请使用 groupadd 命令。如果需要指定 GID,请添加 -g 选项:

      [root@client ~]# groupadd -g 5001 groupname
  2. 在文本编辑器中打开 /etc/sssd/sssd.conf 配置文件。
  3. id_provider=local 替换为 id_provider=files

    [domain/example.com]
    id_provider = files
    ...
  4. 保存 /etc/sssd/sssd.conf 配置文件。
  5. 重启 SSSD 以载入配置更改。

    [root@client ~]# systemctl restart sssd

2.1.2. 删除已弃用的选项

如果您看到关于已弃用选项的以下任一错误,红帽建议从 /etc/sssd/sssd.conf 配置文件中删除这些选项:

SSSD Domain "example.com": option ldap_groups_use_matching_rule_in_chain has no longer any effect
Option ldap_groups_use_matching_rule_in_chain was removed and it will be ignored.
SSSD Domain "example.com": option ldap_initgroups_use_matching_rule_in_chain has no longer any effect
Option ldap_initgroups_use_matching_rule_in_chain was removed and it will be ignored.

步骤

  1. 在文本编辑器中打开 /etc/sssd/sssd.conf 配置文件。
  2. 删除任何出现 ldap_groups_use_matching_rule_in_chainldap_initgroups_use_matching_rule_in_chain 选项的地方。
  3. 保存 /etc/sssd/sssd.conf 配置文件。
  4. 重启 SSSD 以载入配置更改。

    [root@client ~]# systemctl restart sssd

2.1.3. 为 sudo 规则启用通配符匹配

以下警告表示,在 RHEL 8 中,带有通配符的 sudo 规则默认不起作用,因为 ldap_sudo_include_regexp 选项现在默认设置为 false

SSSD Domain "example.com": sudo rules containing wildcards will stop working.
Default value of ldap_sudo_include_regexp changed from true to false for performance reason.

如果您使用带有通配符的 sudo 规则,并希望启用通配符匹配,请手动将 ldap_sudo_include_regexp 选项设置为 true

注意

红帽建议您不要使用通配符来匹配 sudo 规则。

如果 ldap_sudo_include_regexp 选项设为 true,SSSD 会下载 sudoHost 属性中包含通配符的每个 sudo 规则,这会对 LDAP 搜索性能造成负面影响。

步骤

  1. 在文本编辑器中打开 /etc/sssd/sssd.conf 配置文件。
  2. example.com 域中,设置 ldap_sudo_include_regexp=true

    [domain/example.com]
    ...
    ldap_sudo_include_regexp = true
    ...
  3. 保存 /etc/sssd/sssd.conf 配置文件。
  4. 重启 SSSD 以载入配置更改。

    [root@client ~]# systemctl restart sssd