5.4. Le utilità ldapsearch, ldapdelete e ldapmodify

ldapsearch - ldapsearch è un'interfaccia di shell che permette di accedere alla chiamata di libreria ldap_search(3). Usare questo programma di utilità per cercare i campi nel proprio database backend LDAP.

La sintassi per richiamare ldapsearch è la seguente (guardare alla man page del ldapsearch per vedere che cosa significa ogni opzione):


ldapsearch  [-n]  [-u]  [-v]  [-k]  
[-K]  [-t]  [-A] [-B] [-L] 
[-R] [-d debuglevel] [-F sep] [-f file] 
[-x] [-D binddn]  [-W]  [-w bindpasswd]  
[-h ldaphost]  [-p ldapport]   [-b searchbase]   
[-s base|one|sub] 
[-a never|always|search|find] [-l timelimit] 
[-z sizelimit] filter [attrs...] 

ldapsearch apre un collegamento con un server LDAP, bind, ed effettua una ricerca usando il filtro filter. Il filtro dovrebbe essere conforme alla rappresentazione della stringa per i filtri LDAP come definiti in RFC 1558. Se ldapsearch trova uno o più campi, gli attributi specificati da attrs sono richiamati e i campi ed i valori sono stampati sullo standard output. Se nessun attrs è elencato, tutti gli attributi sono restituiti.


ldapsearch -x -b 'o=TUDelft,c=NL' 'objectclass=*' 

ldapsearch -b 'o=TUDelft,c=NL' 'cn=Rene van Leuken' 

ldasearch -u -b 'o=TUDelft,c=NL' 'cn=Luiz Malere' sn mail

L'opzione -b sta per searchbase (punto iniziale di ricerca), l'opzione -u corrisponde alle informazioni di output userfriendly e l'opzione -x è usata per specificare la semplice autenticazione.

ldapdelete - ldapdelete è un'interfaccia accessibile dalla shell alla chiamata di libreria ldap_delete(3). Usare questo programma di utilità per eliminare gli oggetti sul proprio database backend Ldap.

La sintassi per richiamare ldapdelete è la seguente (dare un'occhiata alla man page del ldapdelete per vedere che cosa significa ogni opzione):


ldapdelete   [-n]   [-v]  [-k]  [-K]  
[-c]  [-d debuglevel]  [-f file]  [-D binddn]  
[-W]  [-w passwd] [-h ldaphost] [-p ldapport] 
[dn]... 

ldapdelete apre un collegamento con un server LDAP, bind, e cancella una o più campi. Se uno o più argomenti dn sono forniti, gli oggetti con quei Distinguished Names vengono eliminati. Ciascun DN dovrebbe essere rappresentato da una stringa DN come definito in RFC 1779. Se non sono forniti argomanti sul DN, una lista di DN viene letta dallo standard input (o dal file se è usato -f flag).

Qui ci sono alcuni esempi di uso di ldapdelete:


ldapdelete 'cn=Luiz Malere,o=TUDelft,c=NL' 

ldapdelete -v 'cn=Rene van Leuken,o=TUDelft,c=NL' -D 'cn=Luiz Malere,o=TUDelft,c=NL' -W 

L'opzione -v corrisponde al modo prolisso, l'opzione -D corrisponde a Binddn (il DN su cui fare l'autenticazione) e l'opzione -W corrisponde alla prompt della password.

ldapmodify - ldapmodify è un'interfaccia accessibile dalla shell che permette l'accesso alle chiamate di libreria ldap_modify(3) e ldap_add(3). Usare questo programma di utilità per modificare i campi sul proprio database backend LDAP.

La sintassi per richiamare ldapmodify è la seguente (dare un'occhiata alla man page di ldapmodify per vedere il significato di ogni opzione):


ldapmodify   [-a]  [-b]  [-c]  [-r]  
[-n]  [-v]  [-k]  [-d debuglevel]  
[-D binddn]  [-W]  [-w passwd] 
[-h ldaphost] [-p ldapport] [-f file] 

ldapadd [-b] [-c] [-r] [-n] 
[-v]  [-k]  [-K]  [-d debuglevel]  
[-D binddn]  [-w passwd]  [-h ldaphost] 
[-p ldapport] [-f file] 

ldapadd è implementato come un link fisico allo strumento ldapmodify. Quando invocato come ldapadd, il flag -a (aggiunge un nuovo campo) di ldapmodify è attivato automaticamente. ldapmodify apre un collegamento con un server LDAP, bind, e modifica o aggiunge voci. Le informazioni sugli oggetti sono lette dallo staqndard input o dal file attraverso l'uso dell'opzione -f.

Qui ci sono alcuni esempi sull'uso di ldapmodify:

Supponendo che il file /tmp/entrymods esista ed abbia i contenuti:


dn: cn=Modify Me, o=University of Michigan, c=US 
changetype: modify 
replace: mail 
mail: modme@terminator.rs.itd.umich.edu 
- 
add: title 
title: Grand Poobah 
- 
add: jpegPhoto 
jpegPhoto: /tmp/modme.jpeg 
- 
delete: description 
- 

Il comando:

ldapmodify -b -r -f /tmp/entrymods 

sostituirà i contenuti dell'attributo della voce dell'email "Modify Me" con il valore "modme@terminator.rs.itd.umich.edu", aggiungerà un titolo "Grand Poobah", e i contenuti del file /tmp/modme.jpeg come un jpegPhoto e rimuoverà completamente l'attributo descrizione.

Le stesse modifiche come sopra possono essere fatte usando il più vecchio formato di input ldapmodify:


cn=Modify Me, o=University of Michigan, c=US 
mail=modme@terminator.rs.itd.umich.edu 
+title=Grand Poobah 
+jpegPhoto=/tmp/modme.jpeg 
-description 

E più il seguente comando:

ldapmodify -b -r -f /tmp/entrymods 

Supponendo che il file /tmp/newentry esista ed abbia i contenuti:


dn: cn=Barbara Jensen, o=University of Michigan, c=US 
objectClass: person 
cn: Barbara Jensen 
cn: Babs Jensen 
sn: Jensen 
title: the world's most famous manager 
mail: bjensen@terminator.rs.itd.umich.edu 
uid: bjensen 

Il comando:

ldapadd -f /tmp/entrymods 

aggiungerà il campo con dn: cn=Barbara Jensen, o=University del Michigan, c=US se non è già presente. Se un oggetto con questo dn esiste già, il comando indicherà l'errore e non sovrascriverà l'oggetto.

Supponendo che il file /tmp/newentry esista e abbia i contenuti:


dn: cn=Barbara Jensen, o=University of Michigan, c=US 
changetype: delete 

Il comando:

ldapmodify -f /tmp/entrymods 

rimuoverà l'oggetto Babs Jensen.

L'opzione -f corrisponde al file (legge le informazioni di modifica da un file invece che dallo standard input), l'opzione -b corrisponde al binario (tutti i valori che cominciano con un '/' nel file di input sono interpretati come binari), -r corrisponde a 'replace' (sostituite i valori esistenti con il default).