如何在 Linux 中清除 SSSD 缓存

系统安全服务守护程序 (SSSD) 提供对身份和身份验证提供程序的访问。
SSSD 基本上不依赖于本地配置的身份验证,而是用于查找其本地缓存。
此缓存中的条目可能来自不同的远程身份提供者,例如 LDAP 目录、FreeIPA 或者 Active Directory。

SSSD 缓存来自这些远程位置的用户和凭据的结果,以便在身份提供者离线时,用户凭据仍然可用并且用户仍然可以登录。
这有助于提高性能并促进可以在多个系统上登录的单个用户的可扩展性,而不是在任何地方使用本地帐户。

如果存储的记录变得陈旧并且不再与身份提供者同步,则缓存的结果可能会出现问题,因此了解如何刷新 SSSD 缓存以修复各种问题并更新缓存非常重要。

在这里,我们将介绍几种不同的方法来清除 SSSD 缓存。

sss_cache 工具

可以使用 sss_cache 实用程序清除缓存,该实用程序用于通过使 SSSD 缓存中的记录无效来执行缓存清理。
必须从信息实际驻留的身份提供者服务器(例如 FreeIPA 或者 Active Directory)重新加载无效记录。

-E 标志可用于使所有缓存条目无效,sudo 规则除外。

sss_cache -E

或者,我们也可以简单地使用 -u 标志仅从缓存中使特定用户无效,后跟帐户用户名。

sss_cache -u user1

删除缓存文件

SSSD 将其缓存文件存储在 /var/lib/sss/db/ 目录中。

虽然最好使用 sss_cache 命令,但也可以通过简单地删除相应的缓存文件来清除缓存。

在执行此操作之前,建议停止 SSSD 服务。

systemctl stop sssd

在此之后,我们要删除 /var/lib/sss/db/ 目录中的所有文件。

rm -rf /var/lib/sss/db/*

完成后,我们可以再次启动 SSSD 备份。

systemctl restart sssd

SSSD 现在应该在一个空缓存的情况下正确启动,任何用户登录现在都将首先直接转到定义的身份提供者进行身份验证,然后在本地缓存。

建议仅在域内执行身份验证的身份提供者服务器可用时才清除缓存,否则一旦缓存被刷新,用户将无法登录。

日期:2020-07-07 20:54:53 来源:oir作者:oir