Saltar al contenido principal

Lab 5.1 - Gestión de Usuarios

Objetivos​

Al final de este laboratorio, usted será capaz de:

  • Crear usuarios con useradd
  • Modificar usuarios con usermod
  • Eliminar usuarios con userdel
  • Gestionar contraseñas
  • Comprender los archivos del sistema (/etc/passwd, /etc/shadow)

Prerrequisitos​

  • Ubuntu 24.04 instalado
  • Acceso sudo/root
  • Terminal abierto

Ejercicio 1: Crear Usuarios​

Paso 1: useradd Básico​

# Crear un usuario simple
sudo useradd testuser1

# Verificar
id testuser1
cat /etc/passwd | grep testuser1

Paso 2: useradd con Opciones​

# Crear con directorio home
sudo useradd -m testuser2

# Crear con shell específico
sudo useradd -m -s /bin/bash testuser3

# Crear con grupo primario
sudo useradd -m -g users testuser4

# Crear con UID específico
sudo useradd -m -u 1500 testuser5

Paso 3: Crear con adduser (Ubuntu)​

# adduser es más interactivo (recomendado en Ubuntu)
sudo adduser testuser6

# Siga los prompts:
# - Contraseña
# - Información (opcional)

Ejercicio 2: Modificar Usuarios​

Paso 1: usermod Básico​

# Cambiar el shell
sudo usermod -s /bin/zsh testuser1

# Verificar
grep testuser1 /etc/passwd

Paso 2: Modificar el Directorio Home​

# Cambiar el directorio home
sudo usermod -d /home/nuevo-home testuser1

# Mover el contenido
sudo usermod -m -d /home/nuevo-home testuser1

Paso 3: Añadir a Grupos​

# Añadir a un grupo secundario
sudo usermod -aG sudo testuser1

# Verificar
groups testuser1
id testuser1

Paso 4: Bloquear/Desbloquear​

# Bloquear una cuenta
sudo usermod -L testuser1

# Verificar
sudo passwd -S testuser1

# Desbloquear
sudo usermod -U testuser1

Ejercicio 3: Contraseñas​

Paso 1: Definir una Contraseña​

# Definir la contraseña
sudo passwd testuser1

# Definir sin prompt
echo "testuser1:motdepasse" | sudo chpasswd

Paso 2: Expiración de la Contraseña​

# Forzar cambio en el próximo inicio de sesión
sudo passwd -e testuser1

# Definir expiración
sudo chage -M 90 testuser1 # Expira en 90 días

# Ver la información
sudo chage -l testuser1

Paso 3: Política de Contraseñas​

# Ver la configuración
cat /etc/pam.d/common-password

# Instalar libpam-pwquality para política estricta
sudo apt install libpam-pwquality

# Configuración: /etc/security/pwquality.conf

Ejercicio 4: Archivos del Sistema​

Paso 1: /etc/passwd​

# Ver el archivo
cat /etc/passwd

# Formato: username:x:UID:GID:comment:home:shell
# Ejemplo: testuser1:x:1001:1001::/home/testuser1:/bin/bash

# Analizar
awk -F: '{print $1, $3, $7}' /etc/passwd

Paso 2: /etc/shadow​

# Ver (requiere sudo)
sudo cat /etc/shadow

# Formato: username:password_hash:last_change:min:max:warn:inactive:expire

# Ver la información de un usuario
sudo grep testuser1 /etc/shadow

Paso 3: /etc/group​

# Ver los grupos
cat /etc/group

# Formato: groupname:x:GID:members

# Ver los grupos de un usuario
groups testuser1
id testuser1

Ejercicio 5: Eliminar Usuarios​

Paso 1: userdel Básico​

# Eliminar un usuario (mantiene el home)
sudo userdel testuser1

# Verificar
id testuser1 # Ya no debería existir
ls -la /home/ # Home sigue ahí

Paso 2: Eliminar con Home​

# Eliminar usuario y home
sudo userdel -r testuser2

# Verificar
ls -la /home/ # Home eliminado

Paso 3: Eliminar con deluser (Ubuntu)​

# deluser es más seguro (Ubuntu)
sudo deluser testuser3

# Eliminar con home
sudo deluser --remove-home testuser4

Ejercicio 6: Práctica Completa​

Paso 1: Crear un Usuario Desarrollador​

# Crear con todas las opciones
sudo useradd -m -s /bin/bash -G sudo,developers -c "Desarrollador" devuser

# Definir contraseña
sudo passwd devuser

# Verificar
id devuser
groups devuser

Paso 2: Script de Creación​

# Script para crear un usuario
cat > create-user.sh << 'EOF'
#!/bin/bash
USERNAME=$1
FULLNAME=$2
GROUPS=$3

if [ -z "$USERNAME" ]; then
echo "Usage: $0 username [fullname] [groups]"
exit 1
fi

# Crear usuario
sudo useradd -m -s /bin/bash -c "$FULLNAME" "$USERNAME"

# Añadir a grupos si se especifican
if [ -n "$GROUPS" ]; then
sudo usermod -aG "$GROUPS" "$USERNAME"
fi

# Definir contraseña
sudo passwd "$USERNAME"

echo "Usuario $USERNAME creado"
id "$USERNAME"
EOF

chmod +x create-user.sh

# Usar
./create-user.sh "newuser" "Nuevo Usuario" "sudo,users"

Verificación​

Checklist​

Verifique que puede:

  • Crear usuarios (useradd, adduser)
  • Modificar usuarios (usermod)
  • Gestionar contraseñas (passwd, chage)
  • Comprender /etc/passwd y /etc/shadow
  • Eliminar usuarios (userdel, deluser)
  • Gestionar los grupos de usuarios

Preguntas de Reflexión​

  1. ¿Cuál es la diferencia entre useradd y adduser?

    • useradd: Bajo nivel, menos interactivo
    • adduser: Alto nivel, más amigable (Ubuntu)
  2. ¿Por qué /etc/shadow está separado de /etc/passwd?

    • Seguridad: /etc/passwd es legible por todos
    • /etc/shadow está protegido (contraseñas hasheadas)
  3. ¿Cuándo usar userdel -r?

    • Cuando se quiere eliminar completamente el usuario
    • Atención: también elimina el directorio home

Próximos Pasos​

  • Lab 5.2: Gestión de Grupos
  • Lab 5.3: Permisos Avanzados
  • Capítulo 5.1: Gestión de Usuarios

Lab creado el: Diciembre 2024 - Probado en Ubuntu 24.04