我继承了几个 RHEL5 服务器,这些服务器设置为通过 winbind 对用户的 AD 帐户进行身份验证。在我更新 AD 中的组成员身份之前,一切正常。对于某些用户,这些更改永远不会出现在“groups”命令的输出中,尽管它们反映在“getent group <groupname>”的输出中。
例如,考虑以下情况:
[root@hcc1pl1 ~]# groups plubans
plubans : 域用户系统基础设施开发
[root@hcc1pl1 ~]# getent group q1esb
q1esb:*:23136:q1qai,q1prodi
如果我将自己添加到 winbind 正在使用的 DC 上的 q1esb,您可以看到成员资格已更新:
[root@hcc1pl1 ~]# lsof -i | grep winbind
winbindd 31339 root 17u IPv4 63817934 TCP hcc1pl1:56541->hcnas01:microsoft-ds (ESTABLISHED)
winbindd 31339 root 21u IPv4 63817970 TCP hcc1pl1:53622->hcnas01:ldap (ESTABLISHED)
[root@hcc1pl1 ~]#ldapsearch -u -x -LLL -h hcnas01 -D "[email protected]" -W -b "CN=Peter Lubans,OU=标准用户账户,OU=Users,OU=XXX,DC=XXX,DC=XXX" "( sAMAccountName=*)" memberOf
输入 LDAP 密码:
...
memberOf:CN=q1esb,OU=Security Groups,OU=Groups,OU=XXX,DC=XXX,DC=XXX
...
请注意,winbind 在没有缓存的情况下运行(-n 标志):
[root@hcc1pl1 ~]# ps -ef | grep winbind
root 31339 1 0 13:50?00:00:00 winbindd -n
root 31340 31339 0 13:50?00:00:00 winbindd -n
root 31351 31339 0 13:50?00:00:00 winbindd -n
root 31352 31339 0 13:50?00:00:00 winbindd -n
root 31353 31339 0 13:50?00:00:00 winbindd -n
现在 getent 显示该组具有正确的成员:
[root@hcc1pl1 ~]# getent group q1esb
q1esb:*:23136:q1qai,plubans,q1prodi
但更新后的会员资格并未反映在我的帐户详细信息中:
[root@hcc1pl1 ~]# groups plubans
plubans : 域用户系统基础设施开发
[root@hcc1pl1 ~]#
这个问题真正令人烦恼的部分是,它适用于这台机器上的其他帐户,以及我从头开始配置的机器上的帐户。
有任何想法吗?
这似乎是由登录时缓存在 /var/cache/samba/netsamlogon_cache.tdb 中的组信息引起的。我猜虽然'-n' 指示 winbind 不缓存它对 LDAP 的查询,但该 TDB 文件中成员信息的存在足以把事情搞砸。
我唯一的想法是一个非常模糊的想法,它可能与与您的基础架构大师(负责跨域更新组成员资格)的通信有关。
我在使用 RHEL 的 samba/winbind 软件包时也有过类似的经历。根据我的经验,RHEL 的 winbind 有点粗略。我观察到的是,一旦用户通过身份验证,他们的组成员身份将被准确更新,但除此之外,组成员身份的任何变化都不会出现。这不是一个最佳解决方案,特别是如果您从一个组中删除一个允许他们访问机器的用户,因为它有效地为他们提供了他们不应该获得的最后一次登录。不过,这可能会或可能不会完全反映您的情况,因为我在运行时也没有看到 AD 组的组成员
getent group
(它看起来就像一个没有成员的组,即使将groups username
他们显示为组的成员) ,但它似乎对你有用。为我解决这个问题的是从enterpriseamba.org安装“经过测试”的 RPM 发行版。无论 winbind 缓存设置如何,组成员身份更改都会立即显示。不需要更改配置,但是如果您使用本地 idmap 表映射 AD 用户和组,安装新的 RPMS 很可能会完全重新映射您的数字组和用户 id,因此请为此做好准备(将您的
getent group
和 getent passwd
输出转储到升级之前的文件,因此您可以参考修复文件所有权。我有类似的东西。为了解决这个问题,我运行了“authconfig --disablecache --update”。当然,它使登录速度变慢。
我在这里遇到了同样的问题,我找到了这个链接(https://marcinm.co.uk/group-membership-not-updating-in-winbind/),它详细解释了会发生什么。按照这些步骤并从缓存中删除记录,我的问题就解决了。
再见