.png)
我對使用 LDAP 有點陌生,尤其是非 AD LDAP。我們使用 RedHat Directory Server,並嘗試執行 LDAP 查詢(特別是篩選器),該查詢將從cn
使用nisNetgroupTriple
具有特定使用者名稱的屬性的 LDAP 檢索所有使用者(及其屬性)。這就是我們管理「超級用戶」的方式,然後其他人cn
根據他們的需求進入特定的區域。所以,我的問題是,如何搜尋和過濾ldapsearch
以從.這是我作為測試所做的一些範例輸出:uid
sn
givenName
mail
cn
ldapsearch
# ldapsearch -xLLL -h server-p 389 -D "cn=Directory Manager" -b "cn=linux,dc=example,dc=org" \* + -W
Enter LDAP Password:
dn: cn=linux,dc=example,dc=org
nisNetgroupTriple: (,user1,)
nisNetgroupTriple: (,user2,)
nisNetgroupTriple: (,user3,)
cn: linux
objectClass: top
objectClass: nisNetgroup
memberNisNetgroup: linux
description: Linux
我需要做的是取得每個使用者的屬性:user1
, user2
, user3
,例如:
# ldapsearch -xLLL -h server -p 389 -D "cn=Directory Manager" -b "dc=example,dc=org" -x '(&(objectClass=posixAccount)(uid=user1))' -W
Enter LDAP Password:
dn: uid=user1,ou=People,dc=example,dc=org
userPassword:: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
givenName: User
sn: One
loginShell: /bin/false
gidNumber: 1000
uidNumber: 10054
mail: user1@localhost
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetorgperson
objectClass: posixAccount
uid: user1
cn: User One
homeDirectory: /home/user1
似乎無法在互聯網上找到任何關於如何做到這一點的有意義的內容(如果可以做到的話)。此外,我可能對 LDAP 的這一部分沒有完全理解,這可能是為什麼 1) 我找不到任何東西,2) 我不知道如何自己弄清楚。
任何幫助表示讚賞。
答案1
以下命令將協助根據配置搜尋使用者名稱。
ldapsearch -h localhost -D "cn=Directory Manager" -b "dc=example,dc=org" -W -x "(&(objectClass=nisnetgroup)(nisNetgroupTriple=\(,user1,\)))" cn | grep dn
它將顯示唯一的 cn。您可以執行快速 grep,輸出將簡短而準確。新增/修改該組會更有幫助。
請嘗試此 LDAP 查詢,如果有任何問題請告訴我。