freeIPA 客户端用户查询与用户组信息变更

环境管理 0 1307 江有期 收藏

在Linux 中,管理员更新用户组信息,在用户当前已登录的session 中,不会更新变更的用户组信息,用户只有logout、newgrp newGroup 或者su- $USER 三种方式更新用户组信息,另外也可以借助ssh 方式登录的其他机器解决问题。

本篇文章,练习如何在freeIPA 的客户端中查询用户的组信息变更后的查询。

freeIPA 的采用sssd 服务缓存数据到客户端,sssd 服务机制如下图:

ipa1.jpg

1、在freeIPA 客户端中,配置sssd debug 方式,在/etc/sssd/sssd.conf 配置文件nss 段中配置 debug_level= 8 (1-10,数字越大,debug 输出信息越详细);

ipa2.jpg

2、用户执行命令 id 或者 id $USER 方式查询用户的所有组信息。如果是新开的session(SSH/GNOME/KDE/XFCE 等桌面),id 与id $USER 都会第一时间从 /var/lib/sss/db/cache_XXX.ldb 文件中查询用户信息,区别是id 执行后,用户数据cache 到当前的用户系统内存中,目前没有方法去清除或者刷新这块内存。当管理员在freeIPA server 中更新用户组信息,再执行id,当前session 中查询任然无效;id $USER 会实时的从/var/lib/sss/db/cache_XXX.ldb 查询已经缓存到这个文件的组变更信息;

3、要想探究 /var/lib/sss/db/cache_XXX.ldb 文件的隐藏了什么信息,可在客户端安装

yum install ldb-tools -y

root 执行命令:

ldbsearch -H /var/lib/sss/db/cache_XXX.ldb

查询freeIPA 包含的所有的用户信息;

4、案例操作,在已经登录freeIPA 客户端的session 中,执行 id与 id $USER

ipa3.jpg

5、现在freeIPA 后台将上述用户,增加到新组 digital 中,过几分钟如下截图;

ipa4.jpg

6、执行

newgrp digital

使得当前登录的session 的用户拥有digital 新组信息;


ipa5.jpg

7、在客户端用root 执行

sss_cache -E

清空sssd 缓存,打开一个新的terminal session,执行命令

tailf /var/log/sssd/sssd_nss.log

然后在之前的session 中,再次执行

id

id $USER

命令,看看tailf 动态输出的缓存信息;


相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码