问题
删除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