Az OpenLDAP egy sor eszközt kínál az LDAP-címtár adatainak adminisztrációjához. Az alábbiakban bemutatjuk az adatok felvételére, törlésére, keresésére és módosítására szolgáló négy legfontosabb eszközt.
Ha az LDAP-kiszolgáló konfigurációja helyes az /etc/openldap/slapd.conf fájlban és a kiszolgáló készen áll a muködésre (megfelelo suffix, directory, rootdn, rootpw és index bejegyzéseket tartalmaz), akkor következhet a bejegyzések beírása. Az OpenLDAP erre az ldapadd parancsot biztosítja. Ha lehetséges, gyakorlati okokból érdemes csoportosan felvenni az adatbázisba az objektumokat. Az LDAP ehhez az LDIF adatformátumot (LDAP adatcsere formátumot) kínálja. Egy LDIF fájl egy egyszeru szövegfájl, amelyben tetszés szerinti számú attribútum-érték pár szerepelhet. A használható objektumosztályokkal és attribútumokkal kapcsolatban forduljon az slapd.conf fájlban deklarált sémafájlokhoz. A Ábra 26-1 példa durva keretrendszerének eloállítására szolgáló LDIF fájl valahogy így nézne ki: Példa 26-7.
FONTOS: LDIF fájlok kódolása
Az LDAP az UTF-8 (Unicode) kódolást használja. Az ékezetes betuket ennek megfeleloen kell kódolni. Olyan szövegszerkesztot használjon, amelyik támogatja az UTF-8 használatát. Ilyen például a Kate, vagy az Emacs friss verziói. Ellenkezo esetben kerülje az ékezetes betuk és más speciális karakterek használatát, vagy használja a recode parancsot a bemenet UTF-8 kódtáblára alakításához.
Példa 26-7 Példa egy LDIF fájlra
# The Organization dn: dc=example,dc=com objectClass: dcObject objectClass: organization o: Example dc: example # The organizational unit development (devel) dn: ou=devel,dc=example,dc=com objectClass: organizationalUnit ou: devel # The organizational unit documentation (doc) dn: ou=doc,dc=example,dc=com objectClass: organizationalUnit ou: doc # The organizational unit internal IT (it) dn: ou=it,dc=example,dc=com objectClass: organizationalUnit ou: it
Mentse el a fájlt .ldif kiterjesztéssel, majd küldje el a kiszolgálóhoz az alábbi paranccsal:
ldapadd -x -D <dn of the administrator> -W -f <file>.ldif
A jelen esetben az -x paraméter kikapcsolja az SASL-hitelesítést. A -D azt a felhasználót jelzi, aki meghívja a muveletet. Itt a rendszergazda érvényes DN-jét kell megadni, ugyanúgy, ahogy az az slapd.conf fájlban meg van adva. A jelen példában ez a cn=Administrator,dc=example,dc=com. A -W hatására a jelszót nem nyílt szövegként kell beírni a parancssorban, hanem külön. Ez a jelszó az, amit korábban az slapd.conf fájlban a rootpw direktívánál adott meg. A -f paraméter a fájlnevet adja át. Az ldapadd használatának részletei: Példa 26-8.
Példa 26-8 ldapadd és az example.ldif fájl
ldapadd -x -D cn=Administrator,dc=example,dc=com -W -f example.ldif Enter LDAP password: adding new entry "dc=example,dc=com" adding new entry "ou=devel,dc=example,dc=com" adding new entry "ou=doc,dc=example,dc=com" adding new entry "ou=it,dc=example,dc=com"
Az egyes felhasználók adatait külön LDIF fájlokban is el lehet készíteni. A Példa 26-9 fájl használata esetén Tux bekerül az új LDAP-címtárba.
Példa 26-9 Tux LDIF-adatai
# coworker Tux dn: cn=Tux Linux,ou=devel,dc=example,dc=com objectClass: inetOrgPerson cn: Tux Linux givenName: Tux sn: Linux mail: tux@example.com uid: tux telephoneNumber: +49 1234 567-8
Egy LDIF fájlban tetszés szerinti számú objektum lehet. Egyszerre akár teljes címtárfaágakat is fel lehet venni a kiszolgálóra, de külön objektumokat is, mint a példában látható. Ha bizonyos adatokat viszonylag gyakran kell módosítani, akkor célszeru finoman felosztani az egyes objektumokat.
Az adatok módosítására az ldapmodify parancs szolgál. Ennek legegyszerubb módja a megfelelo LDIF fájl módosítása és a módosított fájl átküldése az LDAP-kiszolgálónak. Például ha meg akarja változtatni Tux kolléga telefonszámát +49 1234 567-8-rol +49 1234 567-10-re, akkor módosítsa az LDIF fájlt így: Példa 26-10.
Példa 26-10 Módosított tux.ldif LDIF fájl
# coworker Tux dn: cn=Tux Linux,ou=devel,dc=example,dc=com changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
Importálja a módosított fájlt az LDAP-címtárba az alábbi paranccsal:
ldapmodify -x -D cn=Administrator,dc=example,dc=com -W -f tux.ldif
Alternatív megoldásként az attribútumok átadhatók közvetlenül, paraméterként is az ldapmodify parancsnak. Ennek módja a következo:
Indítsa el az ldapmodify parancsot és írja be a jelszavát:
ldapmodify -x -D cn=Administrator,dc=example,dc=com -W Enter LDAP password:
Írja be a módosításokat, és ügyeljen az alább leírt szintaxisra:
dn: cn=Tux Linux,ou=devel,dc=example,dc=com changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
Az ldapmodify parancsról és szintaxisáról az ldapmodify kézikönyvoldalon olvashat részletesen.
Az OpenLDAP az ldapsearch parancsori eszközt biztosítja az LDAP-címtárak adatainak keresésére és kiolvasására. Egy egyszeru lekérdezés az alábbi szintaxist követi:
ldapsearch -x -b dc=example,dc=com "(objectClass=*)"
A -b paraméter adja meg a keresés alapját – a fának azt a részét, amelyben a keresés történik. A jelen esetben ez a dc=example,dc=com. Egy finomabb keresés végrehajtásához az LDAP-címtárfa meghatározott részeiben (például csak a devel osztályon belül), adja át ezt a szakaszt az ldapsearch parancsnak a -b paraméterrel. A -x paraméter egyszeru hitelesítést kér. Az (objectClass=*) azt jelenti, hogy a címtár minden objektumát ki kell olvasni. Ez a paraméter használható egy újonnan létrehozott címtárfában annak ellenorzésére, hogy a bejegyzések sikeresen rögzítve lettek-e, és a kiszolgáló az elvárásoknak megfeleloen reagál-e. Az ldapsearch parancs használatáról további részletek a megfelelo kézikönyvoldalon olvashatók (ldapsearch(1)).
A nem kívánt bejegyzések törlésére az ldapdelete parancs szolgál. Ennek szintaxisa a fenti többi parancshoz hasonló. Például Tux Linux teljes bejegyzésének törléséhez adja ki az alábbi parancsot:
ldapdelete -x -D cn=Administrator,dc=example,dc=com -W cn=Tux \ Linux,ou=devel,dc=example,dc=com