将运行 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必须当您删除缓存时会停止。