Я учусь использовать OpenLDAP и не могу понять, почему для поиска в дереве LDAP нужно указывать базовый DN, но для добавления чего-либо он не нужен.
ldapsearch -x -b "dc=foo,dc=local"
ldapadd -x -W -D "dn=admin,dc=foo,dc=local" -f ou.ldif
Может ли кто-нибудь объяснить мне разницу?
решение1
Инструмент командной строкилдападдожидает, что полные DN новых записей будут указаны во входных данных LDIF. Это связано с тем, что каждая операция добавления должна содержать полное DN новой записи, которая будет добавлена.лдападдИнструмент считывает несколько новых записей из записей LDIF и отправляет операцию добавления для каждой из них.
Смотрите также:RFC 4511, раздел 4.7 — Операция добавления
В противоположность инструментуldapsearchотправляет операцию поиска. И для этого должен быть указан "базовый DN" или "корень поиска".
Смотрите также:RFC 4511, раздел 4.5.1 — Запрос на поиск