Назад | Перейти на главную страницу

При попытке сделать ldapadd получил эту ошибку ldap_add: Нет такого объекта (32)

У меня есть следующие записи в моем slapd.conf

#######################################################################
# ldbm and/or bdb database definitions
#######################################################################
#backend        hdb
database    bdb
suffix      "dc=example,dc=com"
checkpoint  1024 15
rootdn      "cn=Manager,dc=example,dc=com"
rootpw      {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
directory   /var/lib/ldap
index objectClass   eq,pres


######################################################################

database monitor

access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
        by dn.exact="cn=Manager,dc=example,dc=com" read
        by * none

Когда я пытаюсь написать следующую команду

ldapadd -x -W -D "cn=Manager,dc=example,dc=com" -f ldapuser100.ldif

У меня следующая ошибка:

adding new entry "uid=ldapuser100,ou=People,dc=example,dc=com"
ldap_add: No such object (32)

Ниже приводится отладка:

oc_check_allowed type "structuralObjectClass"
bdb_dn2entry("uid=ldapuser100,ou=people,dc=example,dc=com")
=> bdb_dn2id("dc=example,dc=com")
<= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)
bdb_add: parent does not exist
 send_ldap_result: conn=1 op=1 p=3
send_ldap_response: msgid=2 tag=105 err=32
ber_flush2: 22 bytes to sd 12
conn=1 op=1 RESULT tag=105 err=32 text=
connection_get(12): got connid=1
connection_read(12): checking for input on id=1
ber_get_next
ber_get_next: tag 0x30 len 5 contents:
op tag 0x42, time 1379789891
ber_get_next
conn=1 op=2 do_unbind
conn=1 op=2 UNBIND
connection_close: conn=1 sd=12
conn=1 fd=12 closed

Содержимое моего файла LDIF:

dn: uid=ldapuser100,ou=People,dc=example,dc=com
uid: ldapuser100
cn: ldapuser100
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}xxxxxxxxxxxxxxxxxxxxxxx
shadowLastChange: 15969
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1400
gidNumber: 1400
homeDirectory: /exports/ldapuser100

Что мне теперь делать?

Содержимое файла LDIF должно зависеть от вашего каталога. Похоже (хотя вы не опубликовали то, что находится в файле ldif, поэтому я действительно не могу сказать, что вы пытаетесь сделать), как будто вы пытаетесь добавить пользователя в ou=People,dc=example,dc=com, но либо ou = People не существует, либо базовое DN вашего каталога почему-то не существует. Попробуйте добавить OU People в свою базу и снова добавьте этот LDIF.

Кроме того, как правило, размещение хэшей паролей в Интернете - не лучшая идея.

Иногда эта проблема также является результатом невозможности открыть серверную базу данных BDB, хотя обычно некоторые указания на это будут приведены в выходных данных отладки.

Однако вам может потребоваться сначала импортировать больше вещей.

Как и ваш базовый DN:

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
dc: example
o: ExmapleCo

Вы могли бы опустить objectClass = organization и o = ExampleCo (я, честно говоря, забываю).

Также ваш OU:

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People