Я ищу каталог LDAP, который имеет гораздо большее количество результатов, чем установленный в настоящее время предел размера, 500, в slapd.conf, который для всех намерений и целей не может быть изменен)
Моя идея заключалась в том, чтобы продолжать запускать ldapsearch, но каждый раз с разным смещением (501, 1001 и т. Д.), Пока не будут получены все результаты.
Я видел страницы руководства для ldapsearch, и похоже, что это делается за вас с помощью параметров -E:
-E [!]<ext>[=<extparam>] search extensions (! indicates criticality)
[!]domainScope (domain scope)
[!]mv=<filter> (matched values filter)
[!]pr=<size>[/prompt|noprompt] (paged results/prompt)
[!]subentries[=true|false] (subentries)
[!]sync=ro[/<cookie>] (LDAP Sync refreshOnly)
rp[/<cookie>][/<slimit>] (LDAP Sync refreshAndPersist)
Итак, я попробовал: ldapsearch -h $HOST -p $PORT -x -L -b "$BASE" '*' '+' -E pr=$SIZE
Однако, когда результаты (даже результаты с разбивкой на страницы, например, с размером = 50) достигают 500, я получаю ту же ошибку, как если бы результаты не были выгружены:
Size limit exceeded (4)
Я видел на страницах руководства, что есть еще один вариант для virtuallistview, но мне не удалось найти для него примеры, а также я не думаю, что в моей версии ldapsearch есть этот вариант.
Цель здесь - создать резервную копию с помощью ldapsearch и опции -L для создания файла ldif, подходящего для восстановления базы данных.
Несколько поисковых запросов Google обнаруживают ту же проблему, что и я, но ни у одного нет подходящего решения.
ldapsearch -LLL -x -h $LDAPHOST -b"dc=whatever" -D${LDAPUSER} -w"${LDAPPASW}" objectclass=* -E pr=2147483647/noprompt
Важная часть в конце: -E pr=2147483647/noprompt
. Я реализовал это сегодня, поэтому знаю, что он работает, по крайней мере, с серверной частью LDAP Active Directory. Для меня это позволило обойти ограничения сервера.
В вашем примере похоже, что вам может не хватать приглашения / noprompt или /. Разница в том, что с приглашением / он останавливается между каждой страницей.
Я не уверен, почему работает номер 2147483647, но он работает.
Мой источник: http://www.commandlinefu.com/commands/view/2779/bypass-1000-entry-limit-of-active-directory-with-ldapsearch
Администратор сервера каталогов вправе установить ограничение на количество записей, которые могут быть возвращены в ответ на поисковый запрос. Клиент LDAP может запросить ограничение размера, но это запрошенное клиентом ограничение не может переопределить ограничение, установленное сервером. Пейджинг работает правильно: пейджинг просто отправляет несколько ответов на поиск, каждый из которых имеет размер, запрошенный клиентом, но по-прежнему не может превышать ограничение размера, установленное сервером. Просмотр виртуального списка аналогичен простому разбиению на страницы, за исключением того, что клиент LDAP может запускаться и возобновлять работу где угодно, тогда как в простых результатах с разбивкой по страницам клиент LDAP должен читать результаты последовательно.
ApacheDS может выполнять поиск по страницам, который вы ищете. По крайней мере, против Active Directory.