
우리는 다음과 같은 여러 값을 갖는 ldap 속성 이름 "mail"을 가지고 있습니다.
우편:[이메일 보호됨]
우편:[이메일 보호됨]
이제 두 번째 값 메일만 결과로 반환하는 쿼리를 찾고 있습니다.[이메일 보호됨]
ldapsearch -h xxx.xxx.xxx.xxx -xw $PASS -LLL -D "cn=admin,dc=example,dc=com" -b
"ou=workers,dc=example,dc=com" "(&(mail=*demosite.com))"
하지만 위의 쿼리는 두 이메일 ID를 모두 반환합니다. 나는 두 번째만을 원합니다. 귀하의 의견을 제공해 주십시오.
답변1
LDAP 검색에서는 이 작업을 수행할 수 없으며 이에 대한 추가 처리가 필요합니다. 우선, 검색에서 반환되는 속성과 값의 순서가 보장되지 않는다는 점은 거의 확실합니다.
답변2
OpenLDAP와 같은 일부 LDAP 서버는 다음을 지원합니다.값반환 필터제어(참조RFC 3876).
OpenLDAP와 함께 이 컨트롤을 사용할 수 있습니다.LDAP검색CLI 인수 -E를 사용합니다.
예: -E "mv=((memberOf=cn=test-users-2,cn=test,ou=ae-dir))"
.
필터는 소위 단순 필터라는 점에 유의하세요.없이피연산자.
내 온라인 데모의 예Æ-DIR:
컨트롤 없이:
$ ldapsearch -H "ldaps://demo.ae-dir.com" -b "ou=ae-dir" -s sub -x -D "uid=aead,cn=ae,ou=ae-dir" -w CorrectHorseBatteryStaple -LL "(memberOf=cn=test-users-2,cn=test,ou=ae-dir)" memberOf
version: 1
dn: uid=dsrg,cn=test,ou=ae-dir
memberOf: cn=test-users-2,cn=test,ou=ae-dir
memberOf: cn=test-users-3,cn=test,ou=ae-dir
dn: uid=rqei,cn=test,ou=ae-dir
memberOf: cn=test-users-1,cn=test,ou=ae-dir
memberOf: cn=test-users-2,cn=test,ou=ae-dir
일치하는 값 제어:
$ ldapsearch -H "ldaps://demo.ae-dir.com" -b "ou=ae-dir" -s sub -x -D "uid=aead,cn=ae,ou=ae-dir" -w CorrectHorseBatteryStaple -LL -E "mv=((memberOf=cn=test-users-2,cn=test,ou=ae-dir))" "(memberOf=cn=test-users-2,cn=test,ou=ae-dir)" memberOf
version: 1
dn: uid=dsrg,cn=test,ou=ae-dir
memberOf: cn=test-users-2,cn=test,ou=ae-dir
dn: uid=rqei,cn=test,ou=ae-dir
memberOf: cn=test-users-2,cn=test,ou=ae-dir