Está en la página 1de 32

Realiza las siguientes tareas de administración de usuarios utilizando el entorno gráfico que

tenga instalado tu sistema. Puede ser necesario instalar las gnome-system-tools.

1. Crea profesor101, profesor102, profesor103, pon contraseñas a todos los


usuarios.

2. Crea gp101, gp102, gp103.

3. Cambia el grupo principal de profesor101 a gp101.

4. Añade profesor102 y profesor 103 a gp102 y gp103, respectivamente, como


grupos secundario.
5. Borra profesor103 y gp103.

6. Intenta renombrar profesor102 como profesor102bis.

7. Elimina todos los profesores y gp creados en la práctica.


Instala webmin y realiza las siguientes tareas de administración de usuarios utilizando su
módulo de gestión de usuarios y grupos locales.

Instalar webmin

Cuando el paquete que pretendemos instalar lo hemos descargado directamente


de Internet en formato .deb, para instalarlo debemos utilizar el comando dpkg, que
tiene este formato:
sudo dpkg -i nombre_del_paquete.deb

https://sliceoflinux.wordpress.com/2009/09/07/instalar
-webmin-en-ubuntu-paso-a-paso/
https://raiolanetworks.es/blog/como-instalar-webmin-en-
ubuntu-debian-o-centos/

1. Crea asistente101, asistente102, asistente103, pon contraseñas a todos los


usuarios.

2. Crea gpa101, gpa102, gpa103.

3. Cambia el grupo principal de asistente101 a gpa101.


4. Añade asistente102 a gpa102 como grupo secundario.

5. Borra asistente103 y gpa103.

6. Intenta renombrar asistente102 como asistente102bis.

7. Modifica la validez de contraseña de asistente102 a 120 días, con 15 de aviso.


8. Elimina todos los usuarios y grupos creados en la práctica.
Administración de LDAP

REPASO: FICHEROS LDIF


El formato LDIF es el estándar para representar entradas del directorio en formato texto.
Una entrada del directorio consiste en dos partes. El DN o nombre distinguido, que debe
figurar en la primera línea de la entrada y que se compone de la cadena dn: seguida del
DN de la entrada. La segunda parte son los atributos de la entrada. Cada atributo se
compone de un nombre de atributo, seguido del carácter dos puntos, :, y el valor del
atributo. Si hay atributos multivaluados (con varios valores, como por ejemplo un
teléfono), deben ponerse seguidos.

No hay ningún orden preestablecido para la colocación de los atributos, pero es


conveniente listar primero el atributo objectclass, para mejorar la legibilidad de la
entrada.

Si hay más de un objeto en el fichero, debe haber una línea en blanco que los separe.
dn: uid=jose,ou=SERVICIO DE INFORMATICA,ou=PAS y PDI,ou=Personas,o=uc3m,c=es
objectclass:person
objectclass:organizationalPerson
objectclass:inetOrgPerson
objectclass:account
objectclass:posixAccount
objectclass:top
uid:jose
sn:LOPEZ ABELLAN
cn:JOSE JUAN LOPEZ ABELLAN
description:LOPEZ ABELLAN, JOSE JUAN
loginshell:/bin/sh
uidnumber:202
gidnumber:100
gecos:Jose J. Lopez
mail:jose@di.uc3m.es
room:1.1.D.04
postaladdress:Despacho: 1.1.D.04$Edificio AGUSTIN DE BETANCOURT$CAMPUS DE
LEGANES$BUTARQUE, 15.$28911 LEGANES$MADRID
telephonenumber:916249961
telephonenumber:916249980
homedirectory:/home/DI/jose

Las líneas excesivamente largas pueden partirse con un retorno de carro, y añadiendo un
espacio al principio de la siguiente línea.
Description:Este es un ejemplo
de atributo excesivamente largo
partido en varias líneas.

1. ¿Cuál es el nombre distinguido del usuario anterior?


2. El atributo uid almacena el nombre, ¿qué atributo almacena los apellidos?
3. Se supone que el orden del fichero LDIF es indiferente ¿puedo poner el segundo
telephonenumber donde yo quiera?
LDAP-Configuración del servidor
Las herramientas para la manipulación de bases de datos o backends son las siguientes:

 slapadd
 slapcat
 slapindex
 slappasswd

Es recomendable que al usar estas herramientas el servidor esté parado.

slapadd. Permite añadir entradas desde un fichero LDIF a una base de datos SLAPD. Actúa
sobre la base de datos indicada y le añade las entradas descritas en el LDIF. Si no se
especifica un fichero LDIF la información se lee de la entrada estándar.
Listado 3. Creación de entradas básicas para miempresa.local
_# cat /tmp/top.ldif

## Construye el nodo raíz


dn: dc=miempresa,dc=local
dc: dtic
objectclass: dcObject
objectclass: organizationalUnit
ou: Dtic Dot Ua Dot Es

## Construye el ou profesores
dn: ou=profesores,dc=miempresa,dc=local
ou: profesores
objectclass: organizationalUnit

_# slapadd –v –l /tmp/top.ldif
added: "dc=miempresa,dc=local"
added: "ou=profesores,dc=miempresa,dc=local"

Sintaxis:

# slapadd [-l <inputfile>] [-f <slapdconfigfile>] [-d <debuglevel>]


[-n <integer>|-b <suffix>]

-l especifica el LDIF de donde obtendrá la(s) entrada(s) a insertar (fichero de entrada).


-v indica modo verbose, da información detallada.
-d indica el nivel de depuración; -n indica qué base datos se modifica en función de un número que indica la posición
(primera, segunda, tercera,…) en el fichero de configuración; -b indica qué base de datos se modifica en función del
sufijo de la misma; -f especifica un fichero de configuración alternativo y si no se indica se utiliza el fichero por defecto
de slapd;

Por ejemplo:

# slapadd -l alumnos.ldif

slapcat. Permite extraer de una base de datos LDAP en formato LDIF. Si no se especifica un
fichero se muestran por la salida estándar. Su sintaxis es:

# slapcat -l <filename> [-f <slapdconfigfile>] [-d <debuglevel>] [-n


<databasenumber>|-b <suffix>]

-l especifica el fichero LDIF donde se insertan las entradas extraídas (fichero de salida).
-v indica modo verbose, da información detallada.
donde -d indica el nivel de depuración; -n indica qué base datos se modifica en función de un número que indica la
posición (primera, segunda, tercera,…) en el fichero de configuración; -b indica qué base de datos se modifica en
función del sufijo de la misma; -f especifica un fichero de configuración alternativo;
Por ejemplo:

# slapcat –l salida.ldif

slapindex. Se utiliza para la regeneración de índices de la base de datos.

# slapindex [-f <slapdconfigfile>] [-d <debuglevel>] [-n


<databasenumber>|-b <suffix>]
donde -d indica el nivel de depuración; -n indica qué base datos se modificada en función de un número que indica la
posición (primera, segunda, tercera,…) en el fichero de configuración; -b indica qué base de datos será modificada en
función del sufijo de la misma; y -f especifica un fichero de configuración alternativo.

slappaswd. Genera una contraseña de usuario cifrada para usar con ldapmodify o el
valor rootpw para el fichero de configuración slapd.conf.

# slappasswd [-h schema]

Por ejemplo si queremos que el usuario prueba tenga la contraseña Alumno$1 ejecutaremos

El resultado del comando es la línea que comienza por la llave, que es el password encriptado,
que podemos introducir en nuestro fichero LDIF.
Pŕactica: Agregar objetos al LDAP: Usuarios y Grupos.
Para este ejercicio crea un dominio linuxsor.local en el servidor. No es necesario que saques
pantallazos.

1. Probamos que está abierto ldap con netstat. Netstat nos informa de puertos abiertos y
de qué programas están relacionados con ellos.
sudo netstat –tpua | more
Si ldap está en marcha la salida debería ser similar a

2. Vamos a mostrar el contenido de nuestro directorio en formato LDIF. El comando


slapcat nos muestra el directorio en formato LDIF.
Para el servicio (es recommendable cuando editemos usando comandos del servidor)
systemctl stop slapd

¿Qué hace slapcat | more?


Cuando está recién instalado debería aparecer el objeto organización (nuestro
dominio) y el objeto correspondiente al administrador (admin). Toma un pantallazo de
tu dominio.

Algunos de los objetos más comunes que se administran en un servidor LDAP son grupos y
personas. En estos ejemplos veremos cómo crear un par de unidades organizacionales (OU):

Vamos añadir dos unidades organizacionales los usuarios y los grupos. Usamos el fichero
UO.ldif con el siguiente contenido:
dn: ou=users,dc=linuxsor,dc=local
objectClass: top
objectClass: organizationalUnit
ou: users
description: Usuarios
dn: ou=groups,dc=linuxsor,dc=local
objectClass: top
objectClass: organizationalUnit
ou: groups
description: Grupos

3. ¿Cuántos objetos hay en el fichero ldif?¿Cómo se llama cada unidad organizativa?


3 objetos. La unidad organizativa users (ou=users) – la unidad organizativa grupos
(ou=grupos)– el dominio linuxsor.local (dc=linuxsor,dc=local)
4. Añade las unidades organizativas siguiendo los siguientes pasos.
Añadimos las unidades organizativas
sudo slapadd -v -l UO.ldif
y nos devuelve
added: "ou=users,dc=linuxsor,dc=local" (00000003)
added: "ou=groups,dc=linuxsor,dc=local" (00000004)
_#################### 100.00% eta none elapsed none fast!

Añadimos un objeto persona del tipo posixAccount. (Posix, simplificando mucho, es la norma
que especifica el funcionamiento de los sistemas Unix y Linux. Estamos añadiendo un usuario
“tipo linux” al directorio). Utilizamos como base el fichero Usuario.ldif

5. Utiliza el comando slappasswd (password Alumno$1) y copia el resultado que da en el


fichero, en la línea userPassword. Muestra el contenido y compáralo con el de debajo.

Cargamos el fichero Usuario.ldif que contiene un usuario y su grupo.


Para añadir el usuario
sudo slapadd -v -l Usuario.ldif
y nos devuelve

6. Añade el usuario con slapadd.

7. Comprueba con slapcat que hemos añadido las unidades organizativas y el usuario.
Compara con el ejemplo de debajo.
sudo slapdcat

8. Reiniciamos el servidor.
systemctl stop slapd
LDAP-Herramientas de cliente

A continuación se describen algunas de las denominadas herramientas de cliente que permiten


modificar, borrar, añadir entradas en el servidor LDAP de una forma remota. Para usar dichas
herramientas debe estar activo el servidor LDAP.

 ldapmodify. Permite modificar entradas de un directorio LDAP aceptando la introducción de


datos a través de un fichero o de la línea de comandos si no se especifica. Sintaxis:

# ldapmodify [-a] [-r] [-n] [-w passwd] [-H ldapuri] [-D binddn] [-p
ldapport] [-f file]

donde -a añade nuevas entradas; -r remplaza los valores existentes; -n simula la operación
pero no realiza el cambio; -f lee la entrada del fichero LDIF especificado; -H especifica la URI
del servidor LDAP; y -D utiliza el dn que permite realizar la operación.

El fichero debe tener como primera línea el dn sobre el que se trabaja. A continuación aparece
el atributo changetype con el valor add, delete, modify o modrdn según lo que se quiera hacer.

Ejemplos de ldapmodify:

dn : cn=Alex Garcia Perez, ou=usuarios, dc=miempresa,dc=local


changetype : modify
replace : sn
sn : Lopez Alegria
-
add : title
title: Grand Poobah
-
add: postalCode
postalCode : 04120
-
delete : street
-

 ldapadd. Añade entradas al directorio aceptando dichos datos a través de un fichero LDIF o
de la línea de comando. En realidad, se trata de un enlace fijo a ldapmodify –a. La sintaxis y
opciones son las mismas que ldapmodify.
Ejemplos mediante LDIF para ldapmodify:

Para borrar una entrada basta indicar el cambio delete


Dn: nombre distinguido
Changetype: delete

Dn: uid=jose,ou=SERVICIO DE INFORMATICA,ou=PAS y PDI,ou=Personas,o=uc3m,c=es


Changetype: delete

Para modificar una entrada


Dn: nombre distinguido
Changetype: modify
TipoCambio: atributo
atributo: valor
Por ejemplo para añadir un atributo:
Dn: uid=jose,ou=SERVICIO DE INFORMATICA,ou=PAS y PDI,ou=Personas,o=uc3m,c=es
Changetype: modify
Add: telephoneNumber
TelephoneNumber: 916249500

Para eliminar todas los valores de un determinado atributo


dn: uid=jose,ou=SERVICIO DE INFORMATICA,ou=PAS y PDI,ou=Personas,o=uc3m,c=es
changetype: modify
delete: telephoneNumber

Para borrar un valor de un atributo:


dn: uid=jose,ou=SERVICIO DE INFORMATICA,ou=PAS y PDI,ou=Personas,o=uc3m,c=es
changetype: modify
delete: telephoneNumber
telephoneNumber: 916249500

Si deseamos actualizar un atributo


dn: uid=jose,ou=SERVICIO DE INFORMATICA,ou=PAS y PDI,ou=Personas,o=uc3m,c=es
changetype: modify
replace: telephoneNumber
telephoneNumber: 916249500

Varias operaciones se pueden combinar en un único fichero si las separamos por un


guión
dn: uid=jose,ou=SERVICIO DE INFORMATICA,ou=PAS y PDI,ou=Personas,o=uc3m,c=es
changetype: modify
delete: telephoneNumber
telephoneNumber: 916249500
-
add: mail
mail: pepe@pepe.com
-
delete: description

Cuando se realiza una operación que combina varias, el servidor las trata como una
única operación, por lo que si una de ellas falla, el servidor devolverá el error
correspondiente y dejará inalterada la entrada.
Otro tipo de cambio permitido es la modificación del nombre distinguido relativo
(modrdn), que permite cambiar parte del nombre distinguido (LDAPv3 permite cambiar
el DN completo de una entrada).
Dn: uid=jose,ou=SERVICIO DE INFORMATICA,ou=PAS y PDI,ou=Personas,o=uc3m,c=es
Changetype: modrdn
newrdn: uid=rafa
deleteoldrdn: 0

El parámetro deleteoldrdn permite especificar si debe borrarse la entrada original (1).


1. Borra el contenido del atributo teléfono móvil (mobile) de pruebau.

dn: uid=pruebau,ou=users,dc=linuxsor,dc=local
changetype: modify
delete: mobile

Antes (puedes consultar la salida de slapcat antes)

-x Identificación simple
-r Modifica (-a añade)
-f Nombre fichero
-D Usuario con permisos para modificar (administrador)
-W Pide el password

2. Crea el grupo grupoInutil, con gid 2002


dn: cn=grupoInutil,ou=groups,cn=linuxsor,cn=local
objectclass: posixGroup
cn: grupoInutil
gidNumber: 2001
 ldapsearch. Permite buscar entradas en el directorio LDAP. Su sintaxis es:

# ldapsearch [opciones] filtro [atributos]

Las posibles opciones del comando son: -b base indica el punto base de la búsqueda; -f fichero
lee la entrada de búsqueda del fichero especificado; -H ldapuri especifica la URI del servidor
LDAP; y -D dn utiliza el dn que permite realizar la operación.

Con filtro establece los patrones que tienen que cumplir los registros a buscar (se permiten los
comodines) y en atributos se indica opcionalmente los atributos que se muestran de los
registros encontrados.

Por ejemplo, a continuación se muestran todas las entradas del directorio miempresa.com.

ldapsearch -b "dc=miempresa,dc=local" "objectclass=*"

O las entradas de tipo persona del directorio:

# ldapsearch -b "dc=miempresa,dc=local" "objectclass=person" sn

3. Busca información sobre:


a) Un objeto del directorio en linuxsor.local que tenga de uid pruebau.

b) Los objetos del tipo posixGroup de linuxsor.local.


 ldapdelete. Permite eliminar entradas del directorio mediante un fichero o desde línea de
comando. Donde -f fichero permite leer la entrada del fichero LDIF especificado; -H
ldapuri: especifica la URI del servidor LDAP y -D dn utiliza el dn que permite realizar la
operación.

A continuación, a modo de ejemplo, se va a borrar la entrada de Juan Perez Garcia.

# ldapdelete –D “cn=root,dc=miempresa,dc=local”
> cn=Juan Perez Garcia, ou=usuarios, dc=miempresa,dc=local

4. Borra el grupoInutil.

5. Resume los comandos de administración LDAP en un cuadro.

Referencias:

http://www.adminso.es/index.php/OpenLDAP_Herramientas

http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m6/administracin_de_openld
ap.html
1. Por comandos crea un usuario local asimov, nombre Isaac Asimov, directorio el que
viene por defecto, shell bash, room BIO, teléfono trabajo +1-202-555-0198,
password terminus$1

2. De forma gráfica sin usar webmin


a. Crea un grupo gescritores.
b. Muestra el grupo principal al que pertenece asimov
c. Asigna a asimov a gescritores como grupo secundario.
3.
4. En WEBMIN crea los elementos necesarios para obtener:
Usuario clarke, nombre Arthur C. Clarke, directorio de trabajo /home/clarke,
password odise2001$1, grupo ppal clarke, grupo secundario gescritores, tiempo de
validez de contraseña 60 días

5. En ldap en dominio.local crea con comandos de servidor:


a. En grupos crea el grupo gescritoresldap, número de grupo 3001, dentro de la ou
grupos.
b. Crea el usuario leguin, uid y cn leguin, nombre para mostrar Ursula LeGuin,
nombre Ursula, apellido LeGuin, número de usuario 3000, número de grupo
3001, password terramar$3, directorio personal /home/leguin, contraseña
caduca a los 40 días, correo ursula@terramar.com
6. Busca a los usuarios de dominio.local
7. Modifica el usuario ldap con comandos de cliente para borrar el atributo initials
8. Modifica el usuario ldap con comandos de cliente para que la caducidad de
contraseña sea 60 días.
Ldapmodify –x 60

net user [<UserName> {<Password> | *} /add [/active:[no/yes] /comment:”comentario”


/expires:[fecha/never] /fullname:”nombre” /homedir:ruta /homedirreq:[no/yes]
/passwordchg:[no/yes] /passwordreq:[no/yes] /profilepath:ruta /scriptpaht:ruta /times:[hora/all]
/workstations:[nombre_equipo]] [/domain]]
net user [<UserName> [/delete] [/domain]]
dsadd ou NombreDeDominioDeUnidadOrganizativa [-desc Descripción] [{-s Servidor | -d Dominio}] [-u
NombreDeUsuario] [-p {Contraseña | *}] [-q]
dsadd user NombreDeDominioDeUsuario [-samid NombreSAM] [-upn UPN] [-fn Nombre] [-ln Apellido] [-
display NombreParaMostrar] [-pwd {Contraseña|*}]
dsadd group NCDeGrupo -samid NombreSAM -secgrp yes | no -scope l | g | u
dsmod group <GroupDN> -addmbr <MemberDN>
dsrm Nombrecompleto
dsadd computer NombreDeDominioDeEquipo [-samid NombreSAM] [-desc Descripción] [-loc Ubicación] [-
memberof NombreDeDominioDeGrupo ..] [{-s Servidor | -d Dominio}] [-u NombreDeUsuario] [-p
{Contraseña | *}] [-q] [{-uc | -uco | -uci}]
adduser nombredeusuario
useradd nombredeusuario
usermod –d dir –m nombreusuario
usermod –g gr nombreusuario
usermod –l n1 n2
userdel nombredeusuario [-r]
passwd nombredeusuario [-x tiempo válida] [-w tiempo advertencia] [-n tiempo mínimo cambio] [-u
desbloqueo] [-S estado contraseña] [-l lock-bloqueo]
vipw
vigr
id
finger
users
groupadd nombregrupo
addgroup nombregrupo
groupmod -n nom1 nom2
delgroup
groupdel
groups nombreusuario
gpasswd [-a|-d] usuario grupo
newgrp grupo
exit
chage
slapadd [-l <inputfile>] [-f <slapdconfigfile>] [-v]
slapcat
slapindex
slappaswd
systemctl [stop|status|start|restart] demonio
ldapmodify [-x] [-a] [-r] [-n] [-W] [-H servidor] [-D usuario] [-p ldapport] [-f fichero]
ldapadd [-x] [-W] [-H servidor] [-D usuario] [-p ldapport] [-f fichero]
ldapsearch [–x] -b base filtro
ldapdelete [–D usuario] [-f fichero]

LDIF auxiliares
dn: xxxxx
changetype: modify
replace: atributo
atributo: valor

dn: xxxx
changetype: modify
add: atributo
atributo: valor

dn: xxxxx
changetype: modify
delete: atributo

dn: xxxxx
changetype: delete

dn: xxxx
changetype: add
atributo: valor
atributo: valor
atributo: valor

También podría gustarte