Newsgroup: it.comp.os.linux.sys
Titolo: Popolare LDAP

Era parecchio tempo che non configuravo un server LDAP e le cose sono
cambiate parecchio nel frattempo.
 
Comunque ho una ubuntu 10.04 LTS server, ho seguito passo passo la
guida
https://help.ubuntu.com/10.04/serverguide/C/openldap-server.html
 
 
ma quanto tento di caricare la base entry ottengo sempre e comunque un
bel:
 
adding new entry "dc=example,dc=com"
ldap_add: Server is unwilling to perform (53)
	additional info: no global superior knowledge
 
 
Dove il file base.ldif è
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
dc: 
example.com
 
o: example
description: LDAP SSO
 
E tento di caricarlo con il comando:
ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif
 
Ma non riesco proprio a capire il problem di quale altra caspita di
conoscenza ha bisogno
per inserire la base entry?

 description: LDAP SSO
 
hai provato a cambiare
 
dc = 
example.com
 
 
con
 
dc = example
 
?
 
-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.

 conoscenza ha bisogno per inserire la base entry?
 
"com"?

 description: LDAP SSO
 
La parte di backend l'hai configurata correttamente?
olcSuffix?
 
I messaggi di errore di LDAP fanno schifo (IMHO).
 
Nicola.
 
-- 
chi va pian va san e va lontan


Sì ci ho pensato anche io (e ho anche provato solo con "example").
Il fatto è che in nessuna guida viene citato che bisogna inserire la
base entry "com", ma tutti partono da un "dc=dominio,dc=com" quindi
presumerei che non sia necessario.
 
Sbaglio?


 
Mah io credo di sì, nel senso che ho seguito la guida e
- la prima volta non ha dato errori
- le volte successive si lamenta perché sono duplicati (quindi ci sono
già).
 
Ma come faccio ad essere sicuro?
E tra l'altro questo sistema di configurazione sarà pure comodo, ma
serve comunque
anche uno slapd.conf oppure no?

 serve comunque anche uno slapd.conf oppure no?
 
No. Per il tuo problema, probabilmenteil file ldif che hai postato dev'essere 
strutturato in questa maniera:
 
[...]
dc: example
dc: com
[...]
 
Enrico
P.S. attualmente OpenLDAP fa meno cagare a spruzzo di prima, ma fa pur sempre 
cagare. Dai un'occhiata anche a 389ds (lo trovi su CentOS/RHEL oppure te lo 
compili a mano) e OpenDJ (e` in Java ed e` un fork attivo di OpenDS di Sun)

On Nov 1, 10:31 am, Enrico 'Henryx' Bianchi

Grazie mille, Intendi due diverse entry quindi?
E l'ordine comunque è importante (andrebbe prima dc:com e poi
dc:example)?
 
E soprattutto, perché straca*** non ho trovato una sola guida/linea di
doc in cui fanno effettivamente così (mi sembra strano)?
 
389ds sembra  molto carino, se è anche ben supportato ed è meno folle
da configurare ci faccio un pensierino.

Come non detto stesso errore con questo ldif
 
dn: dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
dc: com
 
Mi domando che altra conoscenza superiore voglia a questo punto...

 da configurare ci faccio un pensierino.
 
Considerando che l'albero iniziale lo prepari tramite uno script (setup-ds-
admin.pl
), e che hai una interfaccia di amministrazione, direi che e` 
sicuramente meglio di OpenLDAP :)
Da questo punto di vista, comunque, torno a proporti nuovamente OpenDJ, che 
risulta molto completo, potente e di facile amministrazione
 
Enrico

 già).
 
E' evidente che si lamenta perché ci sono i duplicati.
Per rasare tutto e ripartire puliti:
 
#!/bin/bash
    # Controlla se esiste slapd altrimenti ritorna
    SLAPD='/etc/init.d/slapd'
    if([ ! -e "$SLAPD" ]) then
            echo -e "slapd non trovato"
            return
    fi
 
    $SLAPD stop
    # Cancella il database LDAP (be carefull)
    echo " Cancella il vecchio database LDAP"
    rm -rf /var/lib/ldap/*
 
    echo -e $GIALLO" Removing ldif..." $DEFAULT
    rm -f /etc/ldap/slapd.d/cn\=config/olcDatabase\={1}hdb.ldif
    rm -f /etc/ldap/slapd.d/cn\=config/cn\=module{0}.ldif
    rm -f /etc/ldap/slapd.d/cn\=config/cn\=schema/cn\={1}cosine.ldif
    rm -f /etc/ldap/slapd.d/cn\=config/cn\=schema/cn\={2}nis.ldif
    rm -f /etc/ldap/slapd.d/cn\=config/cn\=schema/cn\={3}inetorgperson.ldif
 
    PKG_LIST="slapd ldap-utils samba-doc ldap-auth-client
	krb5-config krb5-kdc-ldap krb5-kdc krb5-user 
	auth-client-config libnss-ldap libpam-ldap ldap-auth-config"
 
    apt-get -y purge $PKG_LIST
    apt-get -y autoremove
    echo " Cancella /etc/ldap/schema"
    rm -rf /etc/ldap/schema
    echo " Cancella /var/lib/libnss-ldap2
    rm -rf /var/lib/libnss-ldap
 
    echo " Ripristina AppArmor..."
    CONF="/etc/apparmor.d/usr.sbin.slapd"
    ROW1='/var/lib/ldap/accesslog/ r,'
    ROW2='/var/lib/ldap/accesslog/** rwk,'
    COMMENTO='# replicazione'
    # Accertiamoci di cavare quello che puo' dar fastidio a sed
    ROW1D=$(echo $ROW1 | sed -e 's/\(\.\|\/\|\*\|\[\|\]\|\\\)/\\&/g')
    ROW2D=$(echo $ROW2 | sed -e 's/\(\.\|\/\|\*\|\[\|\]\|\\\)/\\&/g')
    # Eliminiamo le eventuali vecchie righe
    sed -i "/$COMMENTO/d" $CONF
    sed -i "/$ROW1D/d" $CONF
    sed -i "/$ROW2D/d" $CONF


 presumerei che non sia necessario.
 
Dipende da come lo stai configurando, con il poco che posti si cerca 
di indovinare :-) In ogni caso, in effetti, se fosse che ti manca il
com ti avrebbe rifilato un "no such object". Quel messaggio con quel
ldif mi sa che vuol dire che slapd non riesce del tutto a trovare un 
backend per dc=example,dc=com. 
 
Verifica che nei /etc/ldap/slapd.d/cn=config/olcDatabase={*}hdb.ldif
ci sia il backend per 
example.com
 (olcSuffix: dc=example,dc=com).
 
Ciao
 
 
Fabio

Credo di aver trovato l'errore, nel backend c'era finito "
example.com
"
invece
del vero dc.
 
La cosa assurda è che volevo riiniziare da capo e ho:
- stoppato il servizio
- brasato /var/lib/ldap
- brasato /etc/ldap/slapd.d
- reinstallato
 
e facendo una ricerca la configurazione di hdb era ancora lì!!
 
ora riprovo ma mi sembra un po' magica la cosa...

Non sembra vero ma ci sono riuscito :)
Alla fine uso questo script per caricare il tutto
 
#!/bin/bash
# this is the script that fills up
 
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/
inetorgperson.ldif
 
ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldif
ldapadd -x -D cn=admin,dc=sample,dc=com -W -f base.ldif
 
La cosa che non mi è chiara è, quindi il vecchio slapd.conf non serve
più a niente?


Esatto. Dentro slapd.d ci hanno messo tutti quei bei files in formato ldif. 
Forse il lato positivo è che puoi cambiare la configurazione con i normali 
comandi ldapmodify, ldapadd, ecc.
Onestamente sarei rimasto volentieri con il vecchio slap.conf :)
