Active-Directory
結合了 NFS、Samba 伺服器和來自 Active Directory 的使用者
我想建構一個通過 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.com
和full_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。