openldap-删除,修改ldap用户和组后,使用id命令显示没变化

问题

删除ldap用户后,使用id命令查看,发现仍然是之前的结果

[root@hadoop48 ~]# id ldapuser2
uid=1002(ldapuser2) gid=1002 groups=1002
[root@hadoop48 ~]# more /etc/passwd | grep ldapuser
[root@hadoop48 ~]# ldapsearch -D "cn=Manager,dc=macro,dc=com" -W | grep dn
Enter LDAP Password: 
dn: dc=macro,dc=com
dn: cn=Manager,dc=macro,dc=com
dn: ou=People,dc=macro,dc=com
dn: ou=Group,dc=macro,dc=com
dn: cn=root,ou=Group,dc=macro,dc=com
dn: uid=root,ou=People,dc=macro,dc=com
 lbWQzWmlYaTBEQnRuU0Y1dnVTcHpwaWMvMFdnQkpUS2lqV2dRcndFU0drdHFQUHNqOFFGaXh4QUtt
dn: uid=hive,ou=People,dc=macro,dc=com
dn: cn=hive,ou=Group,dc=macro,dc=com
dn: uid=impala,ou=People,dc=macro,dc=com
dn: cn=impala,ou=Group,dc=macro,dc=com
dn: uid=hdfs,ou=People,dc=macro,dc=com
dn: cn=hdfs,ou=Group,dc=macro,dc=com

解决

在使用FreeIPA进行用户管理的时候,当做一些修改时,ipa客户端无法及时同步到修改后的信息。
一些修改操作如:

  • 删除用户,重新创建
  • 删除用户组,重新创建
  • 修改用户组id

这些操作都会改变用户id或者组id,而ipa客户端无法及时同步这些变化,因为客户端使用SSSD服务缓存ipa信息,我记得SSSD默认的更新频率是1小时,不过不太确定,然而这不是重点,重点是我们怎么手动更新ipa客户端信息。
显而易见,清除SSSD缓存就行,ipa客户端会重新获取ipa信息。
对于清除SSSD缓存的方法有以下两种:

  • 删除缓存文件
  • 使用sss_cache命令清理缓存

下面简单描述一下这两种方法的操作步骤。

sss_cache命令

sss_cache命令是SSSD服务提供的,用于操作缓存。
可以使用sss_cache清除用户信息和组信息等。

这里提供几个命令,其他请自行了解。

清除全部缓存信息:

sss_cache -E
1

清除指定用户的缓存信息:

sss_cache -u user1

删除缓存文件

这个方法简单有效,但是有一定的风险,需要谨慎操作。

操作方法如下:

systemctl stop sssd
rm -rf /var/lib/sss/db/*
systemctl restart sssd

重启SSSD服务后,可以使用linux的id命令查看用户信息,应该可以看到信息已更新

参考

https://blog.csdn.net/xwd127429/article/details/108474042
https://www.rootusers.com/how-to-clear-the-sssd-cache-in-linux/
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/sssd-cache

上一篇:openldap 自行添加新的AttributeTypes和ObjectClasses


下一篇:RHCE 第18节课 Openldap目录服务和Squid代理服务