LDAP (parte3): Añadir usuarios y grupos de forma manual

Publicado por P. Ruiz en

OpenLDAP logoEn los últimos artículos dedicados a esta temática, hemos aprendido a Instalar OpenLDAP en Ubuntu 20.04 LTS y a Iniciar la estructura del directorio.

Hoy aprenderemos a añadir nuevos usuarios y grupos a la estructura del directorio que hemos creado en los artículos anteriores. Y lo haremos de un modo muy parecido al que hemos utilizado en el artículo anterior, cuando creamos la unidad organizativa. Es decir, crearemos un nuevo archivo ldif y, a continuación, lo integraremos en la base de datos con el comando ldapadd.

Como puedes imaginar, comenzaremos por crear un grupo, y luego un usuario que forme parte de dicho grupo. Así, seguiremos el orden que establece la jerarquía de los objetos.

Para tener más información sobre la estructura de los archivos LDIF, te recomiendo consultar el Capítulo 12: Instalar y configurar OpenLDAP en Ubuntu de nuestro libro Sistemas Operativos en Red (2ª edición).

Además, puedes consultar todos los artículos prácticos publicados en SomeBooks.es sobre LDAP. haciendo clic aquí.

Así es que, si estás listo, comencemos…

Añadir un grupo

Como hemos dicho antes, para añadir un nuevo grupo, comenzaremos creando un archivo de texto, con extensión ldif. Y para lograrlo, recurriremos a un comando como este:

sudo nano grp.ldif

Para este ejemplo, llamaremos al archivo grp.ldif, pero tú puedes llamarlo como prefieras

Escribimos la orden y pulsamos la tecla Intro.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-001

En el área de trabajo del editor, escribiremos un contenido como este:

dn: cn=grupo,ou=unidad,dc=somebooks,dc=local
objectClass: top
objectClass: posixGroup
gidNumber: 10000
cn: grupo

Cuando hayamos terminado de escribirlo, pulsamos Ctrl + X para salir, asegurándonos de guardar los cambios.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-002

En el ejemplo, hemos seguido la convención de comenzar los UID de los grupos a partir del valor 10000 (gidNumber: 10000). Así, los siguientes grupos que creemos de forma manual, recibirán los valores 10001, 10002, etc.

De esta forma, evitamos solaparnos con los UID que asigna el sistema de forma automática, ya que éstos comienzan de forma predeterminada en 1000.

Con esto ya estamos listos para cargar el nuevo usuario en el directorio. Sólo tenemos que escribir el siguiente comando:

sudo ldapadd -x -D cn=admin,dc=somebooks,dc=local -W -f grp.ldif

… E incluir la contraseña de administración que creamos al instalar OpenLDAP.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-003

Al momento comprobaremos que el grupo se ha añadido correctamente.

Salida del comando ldapadd.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-004

Y para tener la completa certeza de que todo es correcto, solo tenemos que usar el comando slapcat, que nos permite obtener todas las entradas del directorio:

sudo slapcat

Como el grupo es el último elemento añadido, aparecerá al final de la lista.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-005

Añadir un usuario

Para añadir el grupo, repetimos el proceso anterior, pero lo primero será evitar que la contraseña del usuario se almacene en texto plano dentro del archivo ldif.

Para lograrlo, usaremos el comando slappasswd que produce, a partir de la contraseña original, un hash utilizando el algoritmo SHA-1 (aunque podríamos cambiar el algoritmo que se aplique usando el argumento -h).

Por lo tanto, comenzamos ejecutando el comando slappasswd:

sudo slappasswd

Escribimos la orden y pulsamos la tecla Intro.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-006

A continuación, el comando nos pide la contraseña que queremos utilizar. Es decir, la que usará inicialmente el usuario que estamos a punto de crear, cuando necesite autenticarse.

Deberemos escribirla por duplicado, como siempre, para evitar errores tipográficos.

Al momento, obtendremos la cadena, codificada con hash SHA-1, que equivale a la contraseña que hemos escrito. Debemos copiarla para utilizarla en el archivo ldif que crearemos a continuación.

Salida obtenida por el comando slappasswd.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-007

Ahora sí, ha llegado el momento de crear el archivo ldif para el nuevo usuario. Recuerda que usar el nombre de archivo que prefieras:

sudo nano usr.ldif

Como antes, escribimos la orden y pulsamos la tecla Intro.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-008

Una vez abierto el editor, escribiremos este contenido:

dn: uid=jlopez,ou=unidad,dc=somebooks,dc=local
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: person
cn: jlopez
uid: jlopez
ou: grupo
uidNumber: 2000
gidNumber: 10000
homeDirectory: /home/jlopez
loginShell: /bin/bash
userPassword: {SSHA}TWWnxuBaXt1Hx9ohEXqOJPqXZAgm9lwc
sn: Lopez
mail: juan.lopez@somebooks.com
givenName: jlopez

Observa que hemos incluido al usuario como miembro del grupo que hemos creado más arriba (gidNumber: 10000) y hemos usado la contraseña que hemos generado antes (userPassword: {SSHA}TWWnxuBaXt1Hx9ohEXqOJPqXZAgm9lwc).

En este caso, seguimos la convención de comenzar los UID de los usuarios a partir del valor 2000 (uidNumber: 2000). Así, los siguientes usuarios que creemos de forma manual, recibirán los valores 2001, 2002, etc.

Recuerda que el sistema asigna UID de manera automática a partir de 1000. Si el margen no fuera suficiente, podríamos partir de un valor diferente que nos permitiera ampliar o disminuir el intervalo.

Cuando hayamos terminado de escribirlo, pulsamos Ctrl + X para salir, asegurándonos de guardar los cambios.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-009

Con esto estamos listos para cargar el nuevo usuario en el directorio. Sólo tenemos que escribir el siguiente comando:

sudo ldapadd -x -D cn=admin,dc=somebooks,dc=local -W -f usr.ldif

Una vez más, necesitaremos escribir la contraseña de administración de LDAP.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-010

Al momento comprobaremos que el usuario se ha añadido correctamente.

Salida del comando ldapadd.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-011

Como antes usaremos el comando slapcat, para obtener todas las entradas del directorio y asegurarnos de que todo es correcto:

sudo slapcat

Como el usuario es el último elemento añadido, aparecerá al final de la lista.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-012

Cuando añadas nuevos usuarios, recuerda que los valores para los atributos uidNumber y homeDirectory deben ser diferentes para cada usuario. También habrá que sustituir el texto mi_password por la contraseña adecuada para el usuario. Lo mismo ocurre con el atributo gidNumber de los grupos. Además, los valores de los campos uidNumber y gidNumber no deben coincidir con el UID y GID de ningún usuario y grupo local.

Recuperar información del usuario

Por último, podemos comprobar que el contenido anterior se recupera
correctamente. Para lograrlo podemos utilizar el comando ldapsearch, que nos permite hacer una búsqueda en el directorio.:

ldapsearch -xLLL -b "dc=somebooks,dc=local" uid=jlopez sn givenName cn

En este ejemplo buscamos un usuario con uid=jlopez y pedimos que nos muestre el contenido de los atributos sn, givenName y cn.

… Y este será el resultado de la consulta.

ldap-parte3-anadir-usuarios-y-grupos-de-forma-manual-013

Aquí hemos intentado ser lo más didácticos posible, pero podríamos haber usado un solo archivo ldif que incluyese todos los grupos y usuarios que necesitemos. Bastaría con dejar una línea en blanco entre la definición de un elemento y la del siguiente.

Y hasta aquí el contenido del artículo. Espero que te resulta útil.