Debian

如何在 Debian Buster 上的 Samba/Winbind 中使用記憶體的憑據?

  • May 14, 2020

在混合環境中使用 Debian 和 Windows 很長一段時間後,我一直堅持嘗試使用記憶體的憑據在域環境中登錄。使用憑據登錄後,當機器不再連接到域控制器時,我仍然想登錄。

此行為由 Windows 客戶端實現,因此筆記型電腦使用者仍然可以登錄。除非存在連接,否則只能使用掛載點。我想在我的 Debian/GNU Linux 客戶端上實現同樣的目標。


進一步說明

該工作站使用帶有 GUI(Xorg、XFCE、LightDM)和 Samba(Winbind)的 Debian Buster。這是一個幾乎預設的安裝。

:~$ uname -a
Linux client-ph-wkst 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux
:~$ sudo samba -V
Version 4.9.5-Debian

工作站已成功連接到域控制器 (Samba 4)。一切正常。我從 Jessie 開始就使用這個設置,它很好。所有域使用者都可以在該機器上登錄,擁有自動創建的主目錄等等。唯一的例外是缺少離線身份驗證。

根據 Samba Wiki ( https://wiki.samba.org/index.php/PAM_Offline_Authentication )smb.conf已修改為包含winbind offline logon = yes.

在測試它時,它按預期工作。當手動將 winbind 設置為離線時(sudo smbcontrol winbind offline),我可以驗證 PAM 是否正在使用記憶體的憑據。即使通過物理拔掉電纜,我也可以達到同樣的效果。

問題

但是當我拔下電纜並重新啟動系統時,我無法登錄。它掛在 LightDM 登錄螢幕上。我可以通過按Ctrl++切換到Alt控制台F1。我可以使用系統的 root 帳戶登錄,因為這不會請求域控制器。當我使用 root 查看服務時,我可以看到 nmbd 沒有執行。通過檢查它的日誌,journalctl -xe我看到它沒有啟動,因為No local IPv4 non-loopback interfaces available

Debian GUI 安裝中的預設網路配置工具是 NetworkManager。我nmcli general可以看到我沒有連接。

快速而骯髒的解決方案

在沒有物理插入電纜的情況下,我通過輸入手動啟動介面nmcli connection up pewpewdefaultconnection。我重新啟動 samba 和 nmbd 服務。瞧!它正在工作。我可以輸入我的憑據,甚至重新啟動 lightdm 服務並使用我的記憶體憑據輸入所有內容。

找到好的和乾淨的解決方案

因為我不想要像之前描述的那樣醜陋的解決方案,所以我請求你幫助我。有沒有人以乾淨的方式做到這一點?我真的很感激任何幫助。

我不想設置一個腳本來進行我之前描述的呼叫,因為它們看起來很醜陋。如果可能的話,我想更喜歡配置風格的東西。

注意:我嘗試auto eth0在網路介面中使用並使其被 NetworkManager 的配置文件以managed=true. 這並沒有顯示出任何改善。

我恢復了一切,只留下winbind offline logon = yessmb.conf。幾天后,當拔下 eth 電纜時,我意識到它正在工作。咦!?

在網路中的另一台客戶端電腦上,我進行了相同的配置更改smb.conf,我可以確認它也在那里工作。

引用自:https://unix.stackexchange.com/questions/582018