如果在 LDAP 上,Linux 是否会保留组成员的缓存?(组与 getent 组之间的差异))

db_*_*_ch 8 linux openldap ldap groups pam-ldap

我们的用户和组 LDAP 配置正在运行。

我们的服务器使用 LDAP 来存储用户和组。

# /etc/nsswitch.conf :
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap
Run Code Online (Sandbox Code Playgroud)

但是今天我们在 LDAP 中添加了一个新组,有 3 个用户,然后添加了其他用户。3 个用户在组中,但不在其他组中。

我们可以通过使用“groups”看到这一点:更准确地说,“getent group GROUPNAME”显示组中的用户,而“groups”不显示该用户的组......?!

因此,我试图理解:

  • 是否有某种组缓存 - LDAP 列表?
  • 或者同步是否可能失败,如果是,如何手动重新启动它?

对不起,我的问题没有更准确,但我真的不知道从哪里开始......

PS配置文件

# /etc/ldap/ldap.conf
URI     ldap://172.16.1.232
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt


# /etc/pam_ldap.conf
base dc=ourdomain,dc=ch
uri ldap://172.16.1.232/
ldap_version 3
rootbinddn cn=admin,dc=ourdomain,dc=ch
pam_password crypt
Run Code Online (Sandbox Code Playgroud)

Sli*_*eer 17

pam_ldap并且nsswitch没有缓存机制,但nscdsssd可能存在于您的系统上实现缓存。

要使/刷新nscd组缓存无效,请使用:

sudo nscd --invalidate=group
Run Code Online (Sandbox Code Playgroud)

要使/刷新sssd组缓存无效,请使用:

sudo sss_cache -G
Run Code Online (Sandbox Code Playgroud)

  • 我认为该命令实际上是`sss_cache` (2认同)