OpenLDAP proporciona al administrador numerosos programas para gestionar los datos en el directorio LDAP. A continuación le presentamos los cuatro programas más importantes para añadir, eliminar, examinar y modificar los datos existentes.
Como condición previa para la introducción de nuevas entradas, la
configuración del servidor LDAP en
/etc/openldap/lsapd.conf ha de ser correcta y apta
para su aplicación, es decir, debe contener las instrucciones adecuadas
para suffix, directory,
rootdn, rootpw e
index. La introducción de entradas en
OpenLDAP puede llevarse a cabo con el comando
ldapadd. Por razones prácticas se recomienda añadir los
objetos a la base de datos en forma de paquetes. Con este fin, LDAP
contempla el formato LDIF (LDAP Data Interchange
Format). Un archivo LDIF es un simple archivo de texto que
puede estar formado por un número indeterminado de pares de atributo y
valor. Puede consultar los objetos y atributos disponibles en los archivos
de esquemas indicados en slapd.conf. El archivo LDIF
utilizado para crear el armazón del ejemplo de la Figura 29.1, “Estructura de un directorio LDAP” podría presentar el siguiente
aspecto (ver Ejemplo 29.7, “Ejemplo de archivo LDIF”):
Ejemplo 29.7. Ejemplo de archivo LDIF
# La organización SUSE dn: dc=suse,dc=de objectClass: dcObject objectClass: organization o: SUSE AG dc: suse # La unidad de organización Desarrollo (devel) dn: ou=devel,dc=suse,dc=de objectClass: organizationalUnit ou: devel # La unidad de organización Documentación (doc) dn: ou=doc,dc=suse,dc=de objectClass: organizationalUnit ou: doc # La unidad de organización Administración de Sistemas (it) dn: ou=it,dc=suse,dc=de objectClass: organizationalUnit ou: it
![]() | Codificación de los archivos LDIF |
|---|---|
LDAP funciona con UTF-8 (Unicode), por lo que caracteres especiales como acentos, etc., han de introducirse con la codificación correcta. Le recomendamos que emplee un editor que soporte UTF-8 tal como Kate o las versiones más recientes de Emacs. Si se hubiera cambiado la codificación en su sistema, tiene que renunciar a la introducción de caracteres especiales o usar recode para convertir el texto a UTF-8. | |
Guarde el archivo como .ldif y páselo
al servidor con el siguiente comando:
ldapadd -x -D <dn of the administrator> -W -f <file>.ldif
La primera opción -x indica que en este caso no se va a
producir una autenticación a través de SASL. -D
identifica al usuario que realiza esta operación. Introduzca aquí el DN
válido del administrador tal y como ha sido configurado en
slapd.conf (en nuestro ejemplo,
cn=admin,dc=suse,dc=de). -W evita
tener que introducir la contraseña en la línea de comandos (texto en claro)
y activa una pregunta por separado de la contraseña. Dicha contraseña ha
sido especificada previamente en slapd.conf en la
entrada rootpw. -f pasa el archivo al
servidor. A continuación se muestra el Ejemplo 29.8, “ldapadd de ejemplo.ldif” de ldapadd:
Ejemplo 29.8. ldapadd de ejemplo.ldif
ldapadd -x -D cn=admin,dc=suse,dc=de -W -f example.ldif Enter LDAP password: adding new entry "dc=suse,dc=de" adding new entry "ou=devel,dc=suse,dc=de" adding new entry "ou=doc,dc=suse,dc=de" adding new entry "ou=it,dc=suse,dc=de"
Los datos de usuario de los empleados de cada uno de los departamentos
pueden introducirse en archivos LDIF adicionales. Por medio del siguiente
ejemplo tux.ldif (ver Ejemplo 29.9, “Archivo LDIF para Tux”),
el empleado Tux es añadido al nuevo
directorio LDAP:
Ejemplo 29.9. Archivo LDIF para Tux
# El empleado Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de objectClass: inetOrgPerson cn: Tux Linux givenName: Tux sn: Linux mail: tux@suse.de uid: tux telephoneNumber: +34 123 4567-8
Un archivo LDIF puede contener un número ilimitado de objetos. Es posible pasar al servidor árboles de directorios completos de una vez o sólo partes de los mismos, como por ejemplo objetos sueltos. Si necesita modificar los datos con frecuencia, se recomienda el fraccionamiento en objetos individuales para evitar laboriosas búsquedas en archivos grandes del objeto que debe ser modificado.
Los registros de datos pueden modificarse con la herramienta
ldapmodify. El método más fácil consiste en editar el
archivo LDIF respectivo y pasar de nuevo el archivo modificado al servidor
LDAP. Por ejemplo, para cambiar el número de teléfono del empleado
Tux de +34 123
4567-8 a +34 123 4567-10, edite el archivo
LDIF como se muestra en el Ejemplo 29.10, “Archivo LDIF tux.ldif modificado”.
Ejemplo 29.10. Archivo LDIF tux.ldif modificado
# El empleado Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +34 123 4567-10
Utilice el siguiente comando para importar el archivo modificado al directorio LDAP:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W -f tux.ldif
Como alternativa, también puede introducir directamente en la línea de comandos los atributos que deben ser modificados con ldapmodify. En este caso proceda como se describe a continuación:
Ejecute ldapmodify e introduzca su contraseña:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W Enter LDAP password:
Introduzca los cambios siguiendo la estructura definida a continuación y el orden especificado:
dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +34 123 4567-10
Puede obtener información detallada sobre ldapmodify y su sintaxis en la página del manual correspondiente (ldapmodify(1)).
OpenLDAP ofrece ldapsearch, una herramienta de línea de comandos para examinar y leer datos en el directorio LDAP. La sintaxis de un comando de búsqueda sencillo sería la siguiente:
ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"
La opción -b define la base de búsqueda, es decir, la
sección del árbol donde va a efectuarse la búsqueda (en este caso,
dc=suse,dc=de). Si desea realizar una búsqueda más
depurada en subsecciones determinadas del directorio LDAP (por ejemplo sólo
en el departamento devel), puede definir dicha sección
en ldapsearch con la opción -b. La
opción -x especifica la utilización de una
autenticación sencilla. (objectClass=*) indica que
desea leer todos los objetos incluidos en el directorio. Puede utilizar
este comando tras la creación de un nuevo árbol de directorios para
comprobar si todas las entradas han sido aceptadas correctamente y si el
servidor responde en la forma deseada. Puede obtener información adicional
sobre el uso de ldapsearch en su página del manual
(ldapsearch(1)).
Utilice el comando ldapdelete para borrar entradas del
directorio LDAP. Su sintaxis es muy semejante a la de los comandos
descritos en líneas superiores. Por ejemplo, para borrar la entrada
completa de Tux Linux, introduzca
el comando:
ldapdelete -x -D cn=admin,dc=suse,dc=de -W cn=Tux \ Linux,ou=devel,dc=suse,dc=de