LDAP (parte 3): Añadir usuarios y grupos de forma manual en Ubuntu 14.04 LTS
En los últimos artículos dedicados a esta temática, hemos aprendido a Instalar OpenLDAP en Ubuntu 14.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 usuario
Para añadir un nuevo usuario, recurriremos, como hasta ahora, al editor gEdit:
sudo gedit usuario.ldif
Por supuesto, puedes cambiar el nombre usuario.ldif por el que te resulte más adecuado en tu caso. En el área de trabajo del editor, escribiremos un contenido como este:
dn: uid=jlopez,ou=usuarios,dc=somebooks,dc=local objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: jlopez sn: Lopez givenName: Juan cn: Juan Lopez displayName: Juan Lopez uidNumber: 2000 gidNumber: 10000 userPassword: mi_password gecos: Juan Lopez loginShell: /bin/bash homeDirectory: /home/jlopez shadowExpire: -1 shadowFlag: 0 shadowWarning: 7 shadowMin: 8 shadowMax: 999999 shadowLastChange: 10877 mail: juan.lopez@somebooks.com postalCode: 29000 o: somebooks initials: JL
Cuando hayamos terminado de escribirlo, sólo nos quedará guardar los cambios y cerrar la ventana del editor.
En el ejemplo, hemos seguido 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. 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. Suponemos que ese es un margen suficiente pero, en tu caso, puedes partir de un valor distinto para ampliar o disminuir el intervalo.
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 usuario.ldif
Después de escribir la contraseña de administración de LDAP, podremos comprobar que el usuario se ha añadido correctamente.
Añadir un grupo
Para añadir el grupo, repetimos de nuevo el proceso anterior:
sudo gedit grupo.ldif
Una vez abierto el editor, escribiremos este contenido:
dn: cn=SMR2,ou=grupos,dc=somebooks,dc=local objectClass: posixGroup cn: SMR2 gidNumber: 10000
De vuelta en la terminal, usamos de nuevo el comando ldapadd:
sudo ldapadd -x -D cn=admin,dc=somebooks,dc=local -W -f grupo.ldif
Después de escribir la contraseña de administración de LDAP, podremos comprobar que el grupo se ha añadido correctamente.
Con esto, ya tendremos en la base de datos un nuevo usuario y un nuevo grupo.
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.
Comprobar que todo es correcto
Ahora podemos comprobar que el contenido anterior se ha añadido correctamente. Para lograrlo podemos utilizar, por ejemplo, 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.
También podemos volver a usar el comando slapcat para mostrar el contenido completo del directorio, tal y como vimos más arriba.
Y hasta aquí el contenido del artículo. Espero que te resulta útil.