Windows 7 Samba的问题

我们有一个奇怪的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没有任何问题。 但是一旦他重新启动电脑,问题将会持续。

目前为止所做的故障排除

  1. 确保以下设置:

    转到:控制面板→pipe理工具→本地安全策略select:本地策略→安全选项

    “networking安全:LAN Manager身份validation级别”→发送LM和NTLM响应“NTLM SSP的最低会话安全性”→取消选中:需要128位encryption

  2. build议用户重置密码并重试,但问题仍然存在

  3. 在用户的个人电脑上试用我的帐户,没有问题。 尝试了包括我的其他Windows 7 PC上的用户帐户,但问题仍然存在。 Windows XP没有这个问题。

  4. 确保在Windows 7 PC上没有存储的crendentials。 检查控制面板中的凭据pipe理器以及键入此命令rundll32.exe keymgr.dll, KRShowKeyMgr

  5. 在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目录进行一些修改:

  • http://www.linuxquestions.org/questions/linux-server-73/getent-passwd-dont-show-ad-groups-and-users-745829/
  • http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/tdb.html
  • http://lists.samba.org/archive/samba/2010-May/155521.html
  • http://lists.samba.org/archive/samba/2011-March/161912.html
  • http://lzeit.blogspot.sg/2009/10/samba-shares-inaccessible-after-power.html

有几个用户使用samba服务器,我想解决这个问题没有任何影响。

我看到以下文章:

  • http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#WINBINDCACHETIME

“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秒钟,它会工作,然后分钟将翻转和连接将被拒绝。