Capítulo 11: Instalar y configurar OpenLDAP en Ubuntu 14.04 LTS



11.6. Buscar, modificar y eliminar elementos del directorio

Una vez que hemos aprendido a añadir elementos al directorio LDAP, vamos a aprender a localizar los elementos que ya existen, a realizar modificaciones sobre ellos y a poder eliminarlos si lo consideramos necesario. Vayamos por partes:

Buscar elementos del directorio

Como hemos visto más arriba, la utilidad de línea de comandos que permite realizar búsquedas en el directorio LDAP es ldapsearch. Se trata de una utilidad con multitud de opciones, pero aquí vamos a hacer un uso básico de ella.

Por ejemplo, podríamos buscar todos los usuarios usando la siguiente sintaxis:

ldapsearch -xLLL -b "dc=somebooks,dc=local" uid=* sn givenName mail

(Observa que es la misma orden que escribimos en el apartado anterior, pero ahora hemos utilizado un asterisco como valor de uid).

Aunque no vamos a entrar en muchos detalles, al menos vamos a explicar los argumentos que estamos usando para este ejemplo:

  • -x  indica que usaremos autentificación simple.
  • -LLL sirve para que la salida sea del tipo LDAPv1.
  • -b va seguida del punto del árbol donde debe comenzar la búsqueda. En este caso, dc=somebooks,dc=local.
  • Después se incluye la condición que deberán cumplir los objetos buscados. En el ejemplo, cualquier valor (*) para el atributo uid.
  • Por último, se incluye el nombre de los atributos que queremos obtener en el resultado de la consulta.

1

Escribimos la orden y pulsamos la tecla Intro.

Como puedes ver en la imagen siguiente, el resultado de la consulta se obtiene en formato LDIF, lo que facilitará redirigirlo a un archivo y usarlo como copia de seguridad o incluso como método de exportación de datos a otra implementación de OpenLDAP.

2

Salida de la consulta.

Modificar entradas del directorio

Si te fijas en la salida de la consulta anterior, existe un error: el valor del correo electrónico de los dos últimos usuarios es el mismo.

Esta situación nos ofrece la excusa perfecta para comprobar cómo podemos cambiar el valor del atributo mail para el usuario lgomez.

El comando que usaremos en este caso es ldapmodify, que permite cambiar el contenido de cualquier atributo, añadir atributos nuevos, eliminarlos etc.

Dado que la sintaxis es más compleja nos apoyaremos en un archivo LDIF que especifique los cambios que necesitamos realizar. En nuestro caso, el archivo tendrá el siguiente aspecto:

dn: uid=lgomez,ou=usuarios,dc=somebooks,dc=local
changetype: modify
replace: mail
mail: luis.gomez@somebooks.local

Como puedes suponer, la primera línea identifica la cuenta en la que realizaremos el cambio. La segunda indica el tipo de operación a realizar, la tercera identifica el atributo y, por último, la cuarta incluye el nuevo valor que debe asignarle.

Como en el resto del capítulo, usaremos el editor gEdit para crear el archivo, que para este ejemplo llamaremos cambios.ldif.

1

Ejecutamos el editor, enviándole como argumento el nombre del archivo.

Una vez abierto el editor, escribimos el texto del ejemplo.

2

… Y nos aseguramos de guardar los cambios antes de cerrar la ventana.

Por último, ejecutamos la utilidad ldapmodify, indicándole el nombre del archivo donde se encuentran los datos:

ldapmodify -x -D cn=admin,dc=somebooks,dc=local -W -f cambios.ldif

3

Escribimos la orden y pulsamos Intro.

Después de escribir la contraseña, el comando nos responde con los datos de la entrada que ha sido modificada.

4

Comprobamos que, efectivamente, la respuesta se corresponde con la cuenta indicada en el archivo LDIF.

Si quieres comprobar que los cambios se han efectuado correctamente, basta con volver a utilizar la utilidad ldapsearch, tal y como hicimos en el punto anterior.

5

Observamos que el valor del atributo mail de la cuenta lgomez ha sido modificado.

Borrar entradas del directorio

La utilidad que permite eliminar entradas del directorio se llama ldapdelete. Para utilizarla, sólo tenemos que aportar los datos del objeto a borrar y los datos de la cuenta administrador que debe permitirlo. La sintaxis será como sigue:

ldapdelete -x -W -D 'cn=admin,dc=somebooks,dc=local' "uid=lgomez,ou=usuarios,dc=somebooks,dc=local"

1

Escribimos la orden en la Consola.

Después de escribir la contraseña, parecerá que no ha ocurrido nada. Sin embargo, el objeto habrá sido eliminado.

2

El comando no ofrece ninguna salida.

Para comprobar que la eliminación ha sido efectiva, podemos volver a utilizar la utilidad ldapsearch.

3

Observamos que el objeto ha desaparecido.