Если в моем каталоге несколько ветвей, например, dc = me, dc = org; DC = вы, dc = орг; dc = them, dc = org) как я могу запросить каталог, чтобы получить список доступных базовых DN? Это вопрос прав доступа, или я должен дать аргумент ldapsearch? По сути, я хочу запрос ldapsearch, который вернет список DN, которые я затем смогу использовать в качестве аргумента -b для ldapsearch
1 ответ
Многие серверы предоставляют такие параметры как атрибуты "корневой" (нулевой) записи. В частности, вы ищете атрибут namingContexts
. (Некоторые серверы также имеют defaultNamingContext
и / или configContext
.) Обратите внимание, что вы должны использовать "базу" в качестве области поиска; если используется "sub" по умолчанию, большинство серверов возвращают пустую корневую запись.
Кроме того, по крайней мере в OpenLDAP, это операционные атрибуты, которые должны быть явно запрошены по имени или по шаблону +
. (Samba 4, с другой стороны, считает их нормальными атрибутами, соответствующими *
. Лучше всего использовать конкретные имена.)
^ ldapsearch -b "" -s base \* + SASL/EXTERNAL authentication started SASL username: gidNumber=25000+uidNumber=25193,cn=peercred,cn=external,cn=auth SASL SSF: 0 # extended LDIF # # LDAPv3 # base <> with scope baseObject # filter: (objectclass=*) # requesting: * + # # dn: structuralObjectClass: OpenLDAProotDSE configContext: cn=config namingContexts: dc=cluenet,dc=org namingContexts: dc=nullroute,dc=eu,dc=org supportedControl: 1.3.6.1.4.1.4203.1.9.1.1 supportedControl: 2.16.840.1.113730.3.4.18 supportedControl: 2.16.840.1.113730.3.4.2 ... supportedFeatures: 1.3.6.1.4.1.4203.1.5.4 supportedFeatures: 1.3.6.1.4.1.4203.1.5.5 supportedLDAPVersion: 3 supportedSASLMechanisms: GSSAPI supportedSASLMechanisms: PLAIN supportedSASLMechanisms: EXTERNAL entryDN: subschemaSubentry: cn=Subschema