Quando tentei fazer ldapadd tenho este erro ldap_add: Nenhum tal objeto (32)

3

Eu tenho as seguintes entradas no meu 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

Quando tento escrever o seguinte comando

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

Recebi o seguinte erro:

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

A seguir está a depuração:

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

Conteúdo do meu arquivo 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

O que devo fazer agora?

    
por Pradeep Gupta 21.09.2013 / 21:00

1 resposta

6

O conteúdo do arquivo LDIF deve ser sensível ao seu diretório. Parece (embora você não tenha postado o que está no arquivo ldif, então eu realmente não posso dizer o que você está tentando fazer) como se você estivesse tentando adicionar um usuário dentro de ou=People,dc=example,dc=com , mas ou = People doesn existe, ou o DN base do seu diretório de alguma forma não existe. Tente adicionar a OU de Pessoas à sua base e adicione esse LDIF novamente.

Além disso, geralmente, postar seus hashes de senha na Internet não é a melhor das ideias.

Ocasionalmente, este problema também é resultado de ser incapaz de abrir o banco de dados back-end BDB, embora geralmente alguma indicação disso seja dada na saída de depuração.

Você pode precisar importar mais coisas primeiro.

Como seu DN base:

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

Você pode omitir objectClass = organization e o = ExampleCo (eu sinceramente esqueci).

Além disso, sua OU:

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
    
por 21.09.2013 / 21:23

Tags