我遇到了一个问题,它让我陷入困境。
我们有 14 台 Centos 6 AD 集成服务器,使用带有 idmap_ad(安全性 = ads、idmap 后端 = ad)的 Samba/Winbind,此设置在其中 13 台上运行良好。
问题
问题出在一台服务器和一位用户身上。从问题框中你根本无法解决某个特定用户的问题。该用户可从所有其他服务器中解决。
尝试在问题服务器上解决问题时的结果:
# id username
id: username: No such user
# wbinfo -i username
Could not get info for user username
尝试在良好的服务器上解决时的结果:
# id username
uid=12830(username) gid=100(users) groups=100(users)
# wbinfo -i username
username:*:12830:100:User Name:/home/username:/bin/bash
尝试的解决方案
我已经停止了 winbind 和 smb,并清除了 winbind 缓存 (winbindd_cache.tdb 和 winbindd_cidmap.tdb),然后再次启动它们 - 没有任何效果
我已经使用 -n 启动 winbind 来执行直接查找 - 但没有任何效果
不幸的是,这是一个生产服务器,所以我不能对它进行太过激烈的攻击,而且我无法在任何其他服务器上复制该问题,包括我使用相同配置构建的测试服务器。
经过上述测试后,我确信它不是 winbind,但不明白为什么用户无法解决。
我可以运行wbinfo -n
并获取用户 SID,然后运行net cache list |grep thesid
并查看:
密钥:IDMAP/SID2UID/S-1-5-21-746745685-249376194-4547331-1137 超时:2013 年 4 月 2 日星期二 17:30:32 值:1283 0 密钥:IDMAP/UID2SID/12830 超时:2013 年 4 月 2 日星期二 17:30:32 值:S-1-5-21-746745685-249376194-4547331 -1137
这显示了正确的 UID (12930),因此服务器可以在 AD 中找到他并提取他的 Unix 属性。
我可以运行net lookup sid S-1-etc
并且它成功返回DOMAIN\username
然后我尝试net cache flush
重新启动 smb 和 winbind,但这也未能解决问题。
我仍然无法让id
用户wbinfo -i
登录,也无法访问 samba 共享,因为服务器无法解析它们。
令人愤怒的是,所有其他用户(包括新创建的用户)都可以工作!
...
有人能帮忙吗?我被困住了!
...
基本细节如下:
- 域控制器 = 服务器 2008R2,运行于 2003 FFL 和 DFL 和 MSSFU
- Linux 服务器 = CentOS 6.1 Samba 版本 = 3.5.10-125.el6
- Winbind 版本 = 3.5.10-125.el6
该服务器运行的配置与该站点上的其他服务器相同,并且运行正常,所以我知道它们不是问题所在。就好像服务器只是不喜欢用户 SID 或类似的东西,并且不会通过标准方法查找它。
如果您需要更多信息,请告诉我。
谢谢
答案1
现已解决,这对我有用:
清除所有 Winbind 缓存并刷新网络缓存,记得在删除任何内容之前进行备份!
停止 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
通过尝试解析用户来测试它。