> 技术文档 > SSSD介绍

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:指定身份提供程序(如 ldapadipa)。
  • auth_provider:认证提供程序(如 krb5ldap)。
  • access_provider:访问控制(如 simpleldap)。
  • ldap_uri:LDAP 服务器地址(如 ldap://ldap.example.com)。
  • krb5_realm:Kerberos 域(如 EXAMPLE.COM)。
  • cache_timeout:缓存过期时间(默认 5 分钟)。

示例:

[sssd]domains = example.comservices = nss, pam, sudo[domain/example.com]id_provider = ldapauth_provider = krb5ldap_uri = ldap://ldap.example.comkrb5_realm = EXAMPLE.COM