我見過與配置 Apache 透過 LDAP 進行身份驗證相關的類似問題,但這個基本問題仍然讓我感到困惑。
在我的設定中,我建立了所有具有相同主 GID 的用戶,然後將用戶新增到各個(補充/輔助)群組。我已經測試了這些使用者帳戶,在大多數情況下一切正常 - 我基於補充群組成員身份的權限正在工作。我使用該smbldap-tools
套件來配置我的使用者和群組,特別是我用來smbldap-usermod -G +NEW_GROUP user
將使用者新增至補充群組。
如果我這樣做了,getent group
我會看到那些補充團體及其成員。好的。
如果我查看其中一個補充組的 LDAP 條目,我會看到所有使用者都按預期列出。
然而,當我查看每個使用者的 LDAP 條目時,只gidNumber
列出了與主要群組對應的條目。也就是說,每個使用者的 LDAP 條目僅列出主要群組,而沒有提及次要群組。
Samba/LDAP(使用 smbldap-tools)如何處理補充/次要群組?
此外,我如何形成搜尋過濾器來識別補充組的成員?
答案1
LDAP 只是一個資訊目錄。如何儲存和檢索資訊取決於應用程式。在這種情況下,posix 使用者和群組是根據 /etc/passwd 和 /etc/group 檔案建模的。每個使用者條目都會列出其主要群組的 gid。每個組別都會列出其所有成員(通常較少將其列為主要群組的成員)。
Samba 和用於在 LDAP 中儲存使用者和群組資訊的各種 nss 插件都會進行搜索,以查找使用者登入時所屬的群組。對於給定的用戶帳戶,搜尋過濾器類似於:
(&(objectclass=posixGroup)(memberUid=$user))
如果您想查看特定群組中的用戶,可以使用以下命令進行搜尋:
(&(objectclass=posixGroup)(cn=$group))
這假設您的所有群組都屬於 posixGroup 物件類別。