SSSD介绍
SSSD(System Security Services Daemon,系统安全服务守护进程)是 Linux 系统中用于集中管理身份认证、授权和用户信息的服务。它主要用于连接远程身份管理服务(如 LDAP、Active Directory、FreeIPA 等),并在本地缓存用户和组信息以提高性能。以下是关于 SSSD 的详细解析:
1. SSSD 的主要功能
SSSD 提供以下核心功能:
- 身份认证(Authentication):支持多种认证方式,如 LDAP、Kerberos、Active Directory 等。
- 用户和组信息缓存:减少对远程目录服务的频繁查询,提高登录速度。
- 支持多种身份提供源(Identity Providers):
local
:本地用户(/etc/passwd
、/etc/group
)。ldap
:标准 LDAP 目录(如 OpenLDAP)。ipa
:FreeIPA 或 Red Hat Identity Management(IdM)。ad
:Microsoft Active Directory。proxy
:代理到其他 NSS/PAM 后端。
- 自动挂载(Autofs):支持从 LDAP 或 IPA 加载自动挂载规则。
- SSH 公钥管理:可从远程目录获取用户的 SSH 公钥。
2. SSSD 配置文件(sssd.conf
)
SSSD 的主要配置文件是 /etc/sssd/sssd.conf
,采用 INI 格式,包含多个部分:
2.1 [sssd]
全局配置
domains
:指定要管理的身份域(如example.com
)。services
:定义启用的服务,如nss
(用户/组查询)、pam
(认证)、sudo
(sudo 规则)、autofs
(自动挂载)。cache_credentials
:是否缓存用户凭据(默认False
)。
2.2 [domain/DOMAIN_NAME]
域配置
id_provider
:指定身份提供程序(如ldap
、ad
、ipa
)。auth_provider
:认证提供程序(如krb5
、ldap
)。access_provider
:访问控制(如simple
、ldap
)。ldap_uri
:LDAP 服务器地址(如ldap://ldap.example.com
)。krb5_realm
:Kerberos 域(如EXAMPLE.COM
)。cache_timeout
:缓存过期时间(默认 5 分钟)。
示例:
[sssd]
domains = example.com
services = nss, pam, sudo[domain/example.com]
id_provider = ldap
auth_provider = krb5
ldap_uri = ldap://ldap.example.com
krb5_realm = EXAMPLE.COM