我们有一个奇怪的samba问题只影响一个用户。 我们的桑巴设置如下:
红帽企业Linux服务器版本5.4(Tikanga) – Samba服务器
Samba版本3.0.33-3.14.el5 – Samba版本
域控制器WIN2008R2标准 – Windows DC
Windows 7 64位 – 客户端电脑
网友提到他几星期前强行closures电脑后面临这个问题。 对于所有用户,当我们访问Windows中的\\sambaservername时,它将显示samba服务器中的所有共享,但是对于此用户,一旦他启动了他的PC,他将无法访问\\sambaservername ,错误消息
Windows无法访问
\\sambaservername
解决问题的当前解决方法:
尝试访问\\sambaservername一个共享,例如\\sambaservername\sharedfolder1 。 但即使这样做,它也会在开始时提示错误,错误信息如下
login失败:未知的用户名或密码错误。
用户需要再次input凭据,他可以访问共享。 此后,他将能够访问\\sambaservername没有任何问题。 但是一旦他重新启动电脑,问题将会持续。
目前为止所做的故障排除
确保以下设置:
转到:控制面板→pipe理工具→本地安全策略select:本地策略→安全选项
“networking安全:LAN Manager身份validation级别”→发送LM和NTLM响应“NTLM SSP的最低会话安全性”→取消选中:需要128位encryption
build议用户重置密码并重试,但问题仍然存在
在用户的个人电脑上试用我的帐户,没有问题。 尝试了包括我的其他Windows 7 PC上的用户帐户,但问题仍然存在。 Windows XP没有这个问题。
确保在Windows 7 PC上没有存储的crendentials。 检查控制面板中的凭据pipe理器以及键入此命令rundll32.exe keymgr.dll, KRShowKeyMgr
在samba服务器上重新启动winbindd守护进程,但无济于事。
我怀疑这是由于一些caching问题,但不知道问题在哪里。 每当用户访问\\sambaservername发生错误,以下错误将被logging在samba服务器中:
[2012/10/10 17:10:26, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE! [2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE! [2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE! [2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE! [2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE! [2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE! [2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE! [2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE! [2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE! [2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316) Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
但是,解决之后,不会有更多的错误。 我怀疑在阅读下面列出的文章之后,需要对\var\samba\cache目录进行一些修改:
有几个用户使用samba服务器,我想解决这个问题没有任何影响。
我看到以下文章:
“winbind offline logon(G)此参数devise用于控制Winbind是否允许使用Cached Credentials与pam_winbind模块一起login。 如果启用,winbindd将存储用本地caching中encryption成功login的用户凭证。
默认值:winbind offline logon = false
例如:winbind offline logon = true“
任何想法如何删除本地caching中的一个用户的条目?
我不知道如果nbtstat -R命令(其中“清除并重新加载远程caching名称表” )或nbtstat -RR之一( “发送名称释放数据包到WIN,然后启动刷新。” )可以做任何事情执行你正在寻找的刷新types…
如果你想看看手册, 看看这里 ..
检查以确保ntpd与域控制器同步。 我有同样的问题,直到今天我注意到有问题的服务器和域控制器之间的45分钟的时间差异。 一旦我运行ntpdate它工作正常。
根据我的经验,这通常是域控制器上的时间漂移的结果,或者在您的情况下,只有一个客户端存在问题,连接的客户端计算机。 由于Kerberos在身份validation服务器请求和身份validation服务器回复(AS_Req和AS_rep)中都包含与时间相关的参数,因此会导致会话令牌被拒绝。
AS_Req包含请求令牌的生存期:AS_REQ =(PrincipalClient,PrincipalService,IP_list,Lifetime)
AS_Rep包括DC时间戳和应用的生命周期:AS_REP = {PrincipalService,Timestamp,Lifetime,SKTGS}
因此,如果时间差异超出终身,则连接被拒绝。
假设:我还没有能够确认文件中的生命周期是以分钟为单位的,但是我认为这是因为我有一台间歇性的机器,我能想到的唯一原因是它在边界上是正确的的一生。 所以大概30秒钟,它会工作,然后分钟将翻转和连接将被拒绝。