Active-Directory

結合了 NFS、Samba 伺服器和來自 Active Directory 的使用者

  • November 18, 2020

我想建構一個通過 SMB/CIFS 和 NFS 導出使用者主目錄的伺服器。該伺服器將加入一個 Win2k3 AD 域控制器,該域控制器包含我們的使用者數據庫。據我了解,winbind 會即時為這些使用者發明 UID。此使用者名-UID 映射需要對掛載主目錄的 NFS 客戶端可用,否則將無法正確顯示文件所有權。

我認為這可以使用 SFU 來實現,但據我所知,SFU 已停產,並且在最新版本的 Windows 上不受支持,所以我不想使用它。

如何最好地將此映射提供給 NFS 客戶端?

(你會認為這是一個常見的案例,但我找不到相關的方法。我的 Google-fu 可能很弱。)

編輯:順便說一句,在這種情況下,使用者是否可以通過 NFS 進行連接,而無需先通過 SMB/CIFS 進行連接?

(2017-07-05 編輯)我通常建議現在使用 sssd。將原始答案留在下面以供歷史參考。我目前對 Ubuntu 的註釋是:

apt-get install openssh-server sssd-ad realmd packagekit
realm -v join example.com --computer-ou="OU=someOU,DC=example,DC=com" --user=someuser
  • /etc/sssd/sssd.conf[sssd]部分中,添加default_domain_suffix = example.comfull_name_format = %1$s。在該[domain/example.com]部分中,編輯fallback_homedir = /home/%d/%u並添加ignore_group_members = True. 對於較大的域,添加enumerate = false以防止 sssd 遍歷整個 AD 以查找組成員身份(並將非記憶體登錄延遲一到兩分鐘)。
  • 追加session required pam_mkhomedir.so skel=/etc/skel/ umask=0076/etc/pam.d/common-session. (或您想使用的任何 umask)。
  • 重新啟動sssd服務service sssd restart
  • 嘗試在第二個文本或 GUI 控制台上登錄,或者使用ssh localhost.

winbind預設情況下會在舊版本的 Samba 上構成 UID,或者必須引用 LDAP 儲存以保持一切一致。這種情況已經有一段時間了(2004 年 11 月,如果我的資訊正確的話)——idmap_rid它是一個可以從 Active Directory RID(相對標識符,使用者 SID 的一部分)生成 UID 的後端。

我在這裡編寫了將 Debian 系統綁定到現有 AD 的配置——它使用 Puppet,但如果您只是閱讀它作為 Samba 和 PAM 配置的起點,它應該適用於任何類似的 UNIX 系統。

請注意,我沒有使用 SFU,也沒有以任何方式修改 AD 架構。我想要的只是為我的使用者提供一組一致的 UID。

引用自:https://serverfault.com/questions/255373