SLES 11 SP3 中的用户未显示对域组成员身份的更改

SLES 11 SP3 中的用户未显示对域组成员身份的更改

将运行 SUSE enterprise linux server service pack 3的服务器加入linux02到 Windows Active Directory 域example.com没有问题。

用户(例如fred来自域的用户)可以通过以下方式登录没有问题ssh EXAMPLE\\[email protected]

当以域用户身份登录时,运行groups命令显示所有域组没有问题。

注销fred并重新启动linux02

在 Windows 域控制器上,成为fred组成员linux_sudoers

fred登录linux02并运行groups命令,但是仅所有旧组显示。问题:fred似乎不是以下组织的成员linux_sudoers

现在,当运行时wbinfo --group-info=EXAMPLE\\linux_sudoers,你瞧,他似乎是一个成员:
EXAMPLE\linux_sudoers:x:10073:EXAMPLE\fred
但是当groups再次运行时,新组仍然不在列表中。

现在回到 Windows 域控制器,我创建一个新用户john并使其成为以下成员linux_sudoers

john现在可以linux02毫无问题地登录,并且运行groups命令时显示他是以下成员的成员linux_sudoers

随后的测试表明,用户基本上被锁定到首次登录时存在的域组成员身份linux02,并且无论注销甚至重新启动服务器,都不会反映域中的任何更改。我没主意了。有什么提示吗?

回答:

@大卫·金是正确的!具体来说,我需要运行这些命令:

service smbfs stop
service winbind stop
rm -rf /var/lib/samba/*tdb

我在 /var/cache/samba/ 中没有任何文件

service smbfs start
service winbind start

登录fred并运行groups,果然他显示为成员linux_sudoers

谢谢@大卫·金

答案1

问题是超时。 Linux 正在缓存组成员身份,并且在超时到期之前不会更新它们。真是超级烦人。更烦人的是,我发现强制更新的唯一方法是删除缓存

/etc/init.d/samba stop
rm -rf /var/cache/samba/* /var/lib/samba/*tdb
/etc/init.d samba start

我不使用 SLES,因此您可能需要对此进行调整以适应 SLES 启动/停止服务的方式,但需要注意的重要一点是 samba 和 winbind必须当您删除缓存时会停止。

相关内容