
我們遇到一個奇怪的 samba 問題,只影響一名用戶。我們的 Samba 設定如下:
紅帽企業 Linux 伺服器版本 5.4 (Tikanga) - Samba 伺服器
Samba 版本 3.0.33-3.14.el5 - Samba 版本
網域控制器 WIN2008R2 標準版 - Windows DC
Windows 7 64 位元 - 用戶端 PC
用戶提到,幾週前他強制關閉電腦後遇到了這個問題。正確的是,對於所有用戶,當我們\\sambaservername
在 Windows 中訪問時,它將顯示 samba 伺服器中的所有共享,但是對於該用戶,一旦啟動他的 PC,他將無法訪問\\sambaservername
,錯誤訊息
Windows 無法存取
\\sambaservername
目前解決該問題的解決方法:
\\sambaservername
例如,嘗試存取 中的一個共用\\sambaservername\sharedfolder1
。但即使這樣做,一開始也會先提示錯誤,錯誤訊息如下
登入失敗:使用者名稱未知或密碼錯誤。
使用者需要再次輸入憑證才能存取共用。此後,他將能夠\\sambaservername
毫無問題地訪問。但一旦他重新啟動計算機,問題仍然存在。
目前已完成的故障排除:
確保以下設定:
前往:控制台 → 管理工具 → 本機安全性原則 選擇:本機原則 → 安全性選項
「網路安全:LAN Manager 驗證等級」→ 傳送 LM 和 NTLM 回應 「NTLM SSP 的最低會話安全性」→ 取消選取:需要 128 位元加密
建議用戶重置密碼並重試,但問題仍然存在
在使用者的電腦上嘗試了我的帳戶,沒有問題。在包括我在內的多台其他 Windows 7 PC 上嘗試過使用者帳戶,但問題仍然存在。 Windows XP 就沒有這個問題。
確保 Windows 7 PC 上沒有儲存憑證。檢查控制面板中的憑證管理員並輸入此命令
rundll32.exe keymgr.dll, KRShowKeyMgr
重新啟動 samba 伺服器上的 winbindd 守護程序但無濟於事。
我懷疑這是由於某些快取問題造成的,但不確定問題出在哪裡。每當使用者造訪時發生錯誤\\sambaservername
,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 伺服器,我想在不造成任何影響的情況下解決這個問題。
我看到了以下文章:
「winbind 離線登入 (G) 此參數旨在控制 Winbind 是否允許使用快取憑證透過 pam_winbind 模組登入。如果啟用,winbindd 將在本機快取中加密儲存成功登入的使用者憑證。
預設值:winbind 離線登入 = false
範例:winbind 離線登入 = true "
關於如何刪除本地快取中一個使用者的條目有什麼想法嗎?
答案1
我不確定是否nbtstat -R
命令(其中“清除並重新載入遠端快取名稱表。”)或nbtstat -RR
一個(其中“將名稱釋放資料包發送到 WIN,然後開始刷新。”)可以做任何事情來強制執行您正在尋找的刷新......
如果你想查看手冊,看這裡..
答案2
檢查以確保 ntpd 與網域控制站同步。我遇到了同樣的問題,直到今天我注意到有問題的伺服器和網域控制器之間有 45 分鐘的時間差。當我運行 ntpdate 後,它工作得很好。
答案3
根據我的經驗,這通常是網域控制器上時間漂移的結果,或者在您的情況下只有一個客戶端有問題,即連接客戶端電腦。由於 Kerberos 在身份驗證伺服器請求和身份驗證伺服器回應(AS_Req 和 AS_rep)中都包含與時間相關的參數,因此較大的差異將導致會話令牌被拒絕。
AS_Req 包含所要求的令牌生命週期: AS_REQ = (PrincipalClient,PrincipalService,IP_list,Lifetime)
AS_Rep 包含 DC 時間戳與應用的生命週期: AS_REP = { PrimaryService , Timestamp , Lifetime , SKTGS }
因此,如果時間方差超出生命週期,則連線將被拒絕。
猜想:我無法透過文件確認生命週期是以分鐘為單位指定的,但我認為這是因為我有一台可以間歇性工作的機器,而我能想到的唯一原因是它就在邊界上一生的。因此,大約 30 秒內它會工作,然後分鐘會翻轉並且連接將被拒絕。