7.5. 为 SSSD 配置系统服务
SSSD 提供多个系统服务的接口。最值得注意的是:
- 名称服务切换(NSS)
- 请参阅 第 7.5.1 节 “配置服务:NSS”。
- 可插拔验证模块(PAM)
- 请参阅 第 7.5.2 节 “配置服务:PAM”。
- OpenSSH
autofs
sudo
7.5.1. 配置服务:NSS
SSSD 如何使用 NSS 工作
Name Service Switch(NSS)服务使用配置源映射系统身份和服务:它提供了一个中央配置存储,服务可在其中查找各种配置和名称解析机制的来源。
SSSD 可以使用 NSS 作为多种类型的 NSS 映射的供应商。最值得注意的是:
- 用户信息(
passwd
映射) - 组(
组
映射) - Netgroups (
网络组
映射) - 服务(
服务
映射)
先决条件
- 安装 SSSD.
# yum install sssd
配置 NSS 服务以使用 SSSD
- 使用
authconfig
工具启用 SSSD:[root@server ~]# authconfig --enablesssd --update
这会更新/etc/nsswitch.conf
文件,以便启用以下 NSS 映射以使用 SSSD:passwd: files sss shadow: files sss group: files sss netgroup: files sss
- 打开
/etc/nsswitch.conf
并在services
map 行中添加sss
:services: files
sss
配置 SSSD 以使用 NSS
- 打开
/etc/sssd/sssd.conf
文件: - 在
[sssd]
部分中,确保 NSS 列为使用 SSSD 的服务之一。[sssd] [... file truncated ...] services =
nss
, pam - 在
[nss]
部分中,配置 SSSD 如何与 NSS 交互。例如:[nss] filter_groups = root filter_users = root entry_cache_timeout = 300 entry_cache_nowait_percentage = 75
有关可用选项的完整列表,请查看 sssd.conf(5) man page 中的NSS 配置选项
。 - 重启 SSSD。
# systemctl restart sssd.service
测试 Integration Works 是否正确
使用以下命令显示用户的信息:
- ID 用户
- passwd passwd 用户
7.5.2. 配置服务:PAM
警告
PAM 配置文件中的错误可以完全将用户锁定在系统之外。始终在执行任何更改前备份配置文件,并保持会话打开,以便您可以恢复任何更改。
配置 PAM 使用 SSSD
- 使用
authconfig
工具启用 SSSD:# authconfig --enablesssdauth --update
这会更新 PAM 配置来引用 SSSD 模块,通常位于/etc/pam.d/system-auth
和/etc/pam.d/password-auth
文件中。例如:[... file truncated ...] auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth sufficient pam_sss.so use_first_pass auth required pam_deny.so [... file truncated ...]
详情请查看 pam.conf(5) 或 pam(8) man page。
配置 SSSD 以使用 PAM
- 打开
/etc/sssd/sssd.conf
文件: - 在
[sssd]
部分中,确保 PAM 列为使用 SSSD 的服务之一。[sssd] [... file truncated ...] services = nss,
pam
- 在
[pam]
部分中,配置 SSSD 如何与 PAM 交互。例如:[pam] offline_credentials_expiration = 2 offline_failed_login_attempts = 3 offline_failed_login_delay = 5
有关可用选项的完整列表,请参阅 sssd.conf(5) man page 中的PAM 配置选项
。 - 重启 SSSD。
# systemctl restart sssd.service
测试 Integration Works 是否正确
- 尝试以某一用户身份登录。
- 使用 sssctl user-checks user_name auth 命令检查 SSSD 配置。详情请查看 sssctl user-checks --help 命令。
7.5.3. 配置服务: autofs
具有 自动挂载的
SSSD 工作方式
您可以将
automount
配置为指向 SSSD。在这个设置中:
- 当用户尝试挂载目录时,SSSD 会联系 LDAP 来获取当前
自动挂载配置
所需的信息。 - SSSD 将
自动挂载
所需的信息存储在缓存中,因此即使 LDAP 服务器离线,用户可以挂载目录。
将 autofs
配置为使用 SSSD
- 安装 autofs 软件包。
# yum install autofs
- 打开
/etc/nsswitch.conf
文件。 - 在
automount
行中,将从 ldap 中查找自动挂载映射
信息的位置从ldap
改为sss
:automount: files
sss
配置 SSSD 以使用 autofs
- 打开
/etc/sssd/sssd.conf
文件: - 在
[sssd]
部分中,将autofs
添加到 SSSD 管理的服务列表中。[sssd] services = nss,pam,
autofs
- 创建一个新的
[autofs]
部分。您可以将它留空。[autofs]
有关可用选项列表,请参阅 sssd.conf(5) man page 中的AUTOFS 配置选项
。 sssd.conf
的[domain]
部分接受几个与autofs
相关的选项。例如:[domain/LDAP] [... file truncated ...]
autofs_provider=ldap
ldap_autofs_search_base=cn=automount,dc=example,dc=com
ldap_autofs_map_object_class=automountMap
ldap_autofs_entry_object_class=automount
ldap_autofs_map_name=automountMapName
ldap_autofs_entry_key=automountKey
ldap_autofs_entry_value=automountInformation
有关可用选项的完整列表,请参阅 sssd.conf(5) man page 中的DOMAIN SECTIONS
。如果没有提供其他autofs
选项,则配置取决于身份提供程序设置。- 重启 SSSD。
# systemctl restart sssd.service
测试配置
- 使用 automount -m 命令打印来自 SSSD 的映射。
7.5.4. 配置服务: sudo
使用 sudo
的 SSSD 工作方式
您可以将
sudo
配置为指向 SSSD。在这个设置中:
- 当用户尝试
sudo
操作时,SSSD 会联系 LDAP 或 AD 来获取当前sudo
配置所需的信息。 - SSSD 将
sudo
信息存储在缓存中,因此即使 LDAP 或 AD 服务器离线,用户可以执行sudo
操作。
SSSD 仅缓存应用于本地系统的
sudo
规则,具体取决于 sudoHost
属性的值。详情请查看 sssd-sudo(5) man page。
将 sudo
配置为使用 SSSD
- 打开
/etc/nsswitch.conf
文件。 - 将 SSSD 添加到
sudoers
行上的列表中。sudoers: files
sss
配置 SSSD 以使用 sudo
- 打开
/etc/sssd/sssd.conf
文件: - 在
[sssd]
部分中,将sudo
添加到 SSSD 管理的服务列表中。[sssd] services = nss,pam,
sudo
- 创建一个新的
[sudo]
部分。您可以将它留空。[sudo]
有关可用选项列表,请参阅 sssd.conf(5) man page 中的SUDO 配置选项
。 - 确保
sssd.conf
中有 LDAP 或 AD 域,以便 SSSD 可以从 目录读取sudo
信息。详情请查看:- Windows 集成指南 中的 将 Active Directory 用作 SSSD 身份提供商 一节.
LDAP 或 AD 域的[domain]
部分必须包含这些与sudo
相关的参数:[domain/LDAP_or_AD_domain] ...
sudo_provider = ldap
ldap_sudo_search_base = ou=sudoers,dc=example,dc=com
注意将身份管理或 AD 设置为 ID 提供程序会自动启用sudo
供应商。在这种情况下,不需要指定sudo_provider
参数。有关可用选项的完整列表,请参阅 sssd.conf(5) man page 中的DOMAIN SECTIONS
。有关sudo
供应商可用选项,请查看 sssd-ldap(5) man page。 - 重启 SSSD。
# systemctl restart sssd.service
如果使用 AD 作为供应商,您必须扩展 AD 模式来支持
sudo
规则。详情请查看 sudo
文档。
有关在 LDAP 或 AD 中提供
sudo
规则的详情,请查看 sudoers.ldap(5) man page。