第 1 章 使用 authselect 配置用户身份验证

authselect 是一个实用程序,允许您通过选择特定的配置集来配置系统身份和身份验证源。配置集(profile)是一组文件,描述生成的可插拔验证模块 (PAM) 和网络安全服务 (NSS) 配置。您可以选择默认的配置集或创建自定义配置集。

1.1. authselect 的作用

您可以使用 authselect 工具在 Red Hat Enterprise Linux 9 主机上配置用户身份验证。

您可以通过选择一个可用的配置集来配置身份信息和验证源和供应商:

  • 默认 sssd 配置集为使用 LDAP 身份验证的系统启用系统安全服务守护进程 (SSSD)。
  • winbind 配置集为直接与 Microsoft Active Directory 集成的系统启用 Winbind 实用程序。
  • minimal 配置集只用于直接来自系统文件中的本地用户和组,它允许管理员删除不再需要的网络身份验证服务。

在为给定主机选择了一个 authselect 配置集后,配置集将应用于登录到主机的每个用户。

红帽建议在半集中式身份管理环境中使用 authselect,例如,如果您的组织使用 LDAP 或 Winbind 数据库来验证用户,以便在您的域中使用服务。

警告

如果出现以下情况,您不需要使用 authselect

  • 您的主机是 Red Hat Enterprise Linux Identity Management(IdM)的一部分。使用 ipa-client-install 命令将您的主机加入 IdM 域会自动在主机上配置 SSSD 身份验证。
  • 您的主机通过 SSSD 作为 Active Directory 的一部分。调用 realm join 命令将您的主机加入 Active Directory 域会自动在您的主机上配置 SSSD 身份验证。

红帽建议不要更改 ipa-client-installrealm join 配置的 authselect 配置集。如果您需要修改它们,请在进行任何修改前显示当前的设置,以便在需要时将其恢复:

$ authselect current
Profile ID: sssd
Enabled features:
- with-sudo
- with-mkhomedir
- with-smartcard

1.1.1. authselect 修改的文件和目录

在以前的 Red Hat Enterprise Linux 版本中使用的 authconfig 实用程序会创建并修改许多不同的配置文件,从而使故障排除变得更加困难。authselect 简化了测试和故障排除过程,因为它仅修改以下文件和目录:

/etc/nsswitch.conf

GNU C 库和其他应用使用此名称服务交换机 (NSS) 配置文件来确定从中获取一系列类别中的名称服务信息的来源,以及顺序。每个类别的信息都由一个数据库名来标识。

/etc/pam.d/* 文件

Linux-PAM(可插拔验证模块)是处理系统中应用程序(服务)验证任务的模块系统。验证的特性是动态可配置的:系统管理员可以选择如何单独提供服务提供应用程序验证用户。

/etc/pam.d/ 目录中的配置文件列出了将执行服务所需身份验证任务的 PAM,以及在单个 PAM 失败时 PAM-API 相应行为。

这些文件还包含以下信息:

  • 用户密码锁定条件
  • 使用智能卡验证的能力
  • 使用指纹读取器验证的能力

/etc/dconf/db/distro.d/* 文件

此目录包含 dconf 实用程序的配置集,可用于管理 GNOME 桌面图形用户界面 (GUI) 的设置。

1.1.2. /etc/nsswitch.conf 中的数据提供程序

默认 sssd 配置集通过在 /etc/nsswitch.conf 中创建 sss 条目将 SSSD 设置为信息源:

passwd:     sss files
group:      sss files
netgroup:   sss files
automount:  sss files
services:   sss files
...

这意味着,如果请求了有关这些项目之一的信息,系统首先会查找 SSSD:

  • passwd 用于用户信息
  • group 用户组群信息
  • netgroup 用于 NIS netgroup 信息
  • automount 用于 NFS 自动挂载信息
  • services 用于有关服务的信息

只有在 sssd 缓存和提供身份验证的服务器上找不到请求的信息,或者 sssd 没有运行时,系统才会查看本地文件,即 /etc/*

例如,如果请求有关用户 ID 的信息,则首先在 sssd 缓存中搜索用户 ID。如果未在此处找到,则会查阅 /etc/passwd 文件。类似地,如果请求用户的组从属关系,则首先在 sssd 缓存中搜索它,并且仅在未找到时搜索 /etc/group 文件。

实际上,本地文件数据库通常不会被查阅。最重要的例外是 root 用户,它永远不会由 sssd 处理,而是由文件处理。