我们已在六台 Centos 6 服务器上成功使用 Samba 和 Winbind(idmap_ad)部署了 AD 身份验证,并且已经顺利运行了几个月。
其中一台服务器已停止解析一个特定的用户名 (#id 用户名),该 AD 用户在所有其他服务器上解析,所有其他用户在问题服务器上解析。
我认为这可能是由损坏的 winbindd_idmap.tdb 引起的。现在,检查此问题的最简单方法是停止 winbind 删除文件,重新启动 samb 并启动 winbind,然后重试。我的问题是目前存在变更冻结,我们必须提出 RFC 等来测试该理论。
我的问题是:是否可以在不重新启动服务的情况下清除 winbind 缓存?
或者如果您认为是其他原因,请随时介入!
谢谢
更新:
变更冻结现已完成。
我已删除 winbindd_idmap.tdb 和 winbindd_cache.tdb,并重新启动 winbind。但这并未解决问题。
此外,服务器不会解析随机新用户(有些会解析,有些则不会)。我很难搞清楚这一点。
有人可以帮忙吗?
答案1
现已解决,这对我有用:
清除所有 Winbind 缓存并刷新net cache
。
删除任何内容之前请记得进行备份!
停止 Winbind 和 Samba 服务:
service winbind stop
service smb stop
清除 Samba Net 缓存:
net cache flush
删除 Winbind 缓存:
rm -f /var/lib/samba/*.tdb
rm -f /var/lib/samba/group_mapping.ldb
启动 Samba,然后启动 Winbind 服务 - 注意:顺序很重要
service smb start
service winbind start
通过尝试解析用户来测试它。
答案2
也许可以net cache flush
。
答案3
/var/cache/samba
除了 malco 的回答(在 Debian 和 Ubuntu 上)之外,我还必须删除
答案4
我可能会尝试测试所有 tdb 文件的完整性。有很多tdb文件。
tdbbackup 实用程序是一种可用于备份 samba tdb 文件的工具。此工具还可用于在 Samba 启动之前或正常运行期间验证 tdb 文件的完整性。如果发现文件损坏,它将搜索先前的备份,即将从中恢复损坏的 tdb 文件的备份文件。tdbbackup 实用程序可以随时安全运行。它被设计为可以随时用于验证 tdb 文件的完整性,即使在 Samba 运行期间也是如此。