← Teoría P7 · UF0853 · Usuarios y grupos ✓ Guardado

Práctica 7 · Usuarios y grupos

UF: UF0853 · Sesión: 7 / 10 · Modalidad: individual
Entorno: VM Windows (Pro recomendado) + VM Ubuntu
Entregable: este archivo con capturas y respuestas

De qué va. Vas a construir un escenario de empresa con 5 usuarios y 3 grupos en ambos sistemas, configurar políticas de contraseña, gestionar sudo, y resolver un caso real de «se ha ido el técnico de TI y nadie recuerda la contraseña de admin».

Por qué importa. Casi cualquier auditoría de seguridad mira primero «quién puede entrar y como qué». Si lo gestionas bien, ya tienes 80% del trabajo hecho.

1 Crear usuarios en Windows (GUI + CLI)

Por interfaz gráfica

  1. Win+I → Cuentas → Otros usuarios → Agregar cuenta.
  2. Sin cuenta Microsoft. Crea: tecnico1 con contraseña Pwd2026.
  3. Tipo de cuenta: Estándar.

Por línea de comandos (más rápido)

Abre CMD como administrador:

net user tecnico2 Pwd2026. /add /fullname:"Técnico 2" /comment:"Soporte de turno"
net user tecnico3 Pwd2026. /add /fullname:"Técnico 3"
net user tecnico4 Pwd2026. /add /fullname:"Técnico 4"
net user direccion DirPwd2026. /add /fullname:"Dirección"

REM Listar todos los usuarios
net user

REM Ver detalles de uno
net user tecnico2

PowerShell (versión moderna)

New-LocalUser -Name "tecnico5" -Password (ConvertTo-SecureString "Pwd2026." -AsPlainText -Force) -FullName "Técnico 5" -Description "Soporte"
Get-LocalUser
Get-LocalUser tecnico5 | Format-List
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

Subir uno a administrador

net localgroup Administradores direccion /add
REM (En Win en inglés: "Administrators")

net localgroup Administradores
Get-LocalGroupMember -Group Administradores

2 Grupos personalizados y permisos

Crearás 3 grupos: Soporte, Direccion, RecursosHumanos.

net localgroup Soporte /add /comment:"Equipo de soporte técnico"
net localgroup Direccion /add /comment:"Equipo directivo"
net localgroup RecursosHumanos /add /comment:"Departamento RR.HH."

REM Asignar usuarios
net localgroup Soporte tecnico1 /add
net localgroup Soporte tecnico2 /add
net localgroup Soporte tecnico3 /add
net localgroup Soporte tecnico4 /add
net localgroup Soporte tecnico5 /add
net localgroup Direccion direccion /add

REM Verificar
net localgroup Soporte
net localgroup Direccion
net localgroup RecursosHumanos
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

Carpeta departamental con permisos por grupo

mkdir C:\Departamentos
mkdir C:\Departamentos\Soporte
mkdir C:\Departamentos\Direccion
mkdir C:\Departamentos\RRHH

REM Romper herencia y asignar permisos por grupo
icacls C:\Departamentos\Soporte /inheritance:r
icacls C:\Departamentos\Soporte /grant Administradores:F SYSTEM:F Soporte:M

icacls C:\Departamentos\Direccion /inheritance:r
icacls C:\Departamentos\Direccion /grant Administradores:F SYSTEM:F Direccion:F

icacls C:\Departamentos\RRHH /inheritance:r
icacls C:\Departamentos\RRHH /grant Administradores:F SYSTEM:F RecursosHumanos:M

REM Verifica
icacls C:\Departamentos\Soporte
Probar como tecnico1
  1. Cierra sesión, entra como tecnico1 / Pwd2026.
  2. Intenta entrar en C:\Departamentos\Soporte y crear un archivo. ¿Funciona?
  3. Intenta entrar en C:\Departamentos\Direccion. ¿Qué pasa?
  4. Vuelve a admin.
CarpetaEntrarCrear archivo
Soporte
Direccion
RRHH

3 Directivas de contraseña

Solo en Windows Pro/Enterprise. Home no tiene secpol.msc. Si tienes Home, usa net accounts que sí funciona.

secpol.msc · GUI

  1. Ejecuta secpol.msc (Win+R).
  2. Directivas de cuenta → Directiva de contraseñas.
  3. Configura:
    • Longitud mínima: 10 caracteres
    • Complejidad: Habilitada
    • Vigencia máxima: 90 días
    • Vigencia mínima: 1 día
    • Historial: 5 contraseñas recordadas
  4. Directivas de cuenta → Directiva de bloqueo de cuenta:
    • Umbral: 5 intentos fallidos
    • Duración: 30 minutos
    • Restablecimiento: 30 minutos

net accounts · equivalente CLI

net accounts /minpwlen:10 /maxpwage:90 /minpwage:1 /uniquepw:5
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
net accounts                                REM ver el estado actual
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Probar la directiva
  1. Intenta cambiar la contraseña de tecnico1 a 1234. ¿Qué pasa?
  2. Intenta una contraseña sin mayúsculas: solominus2026. ¿Pasa?
  3. Cierra sesión, entra como tecnico1 con contraseña incorrecta 5 veces. ¿Te bloquea?
  4. Vuelve a admin, abre net user tecnico1 y mira el estado. Desbloquéalo si hace falta: net user tecnico1 /active:yes.

Caducidad y «forzar cambio»

REM forzar cambio en el próximo login
net user tecnico1 /logonpasswordchg:yes

REM caducidad concreta
wmic useraccount where name='tecnico1' set PasswordExpires=TRUE

4 Usuarios en Linux: passwd, shadow, group

Crear los 5 técnicos en Ubuntu
for u in tecnico1 tecnico2 tecnico3 tecnico4 tecnico5; do
  sudo adduser --gecos "Tecnico,,," --disabled-password $u
  echo "$u:Pwd2026." | sudo chpasswd
done

sudo adduser --gecos "Direccion,,," --disabled-password direccion
echo "direccion:DirPwd2026." | sudo chpasswd

# Verificar
getent passwd | tail -10
cat /etc/passwd | tail -10
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

Diseccionar /etc/passwd y /etc/shadow

grep tecnico1 /etc/passwd

Verás algo como:

tecnico1:x:1003:1003:Tecnico,,,:/home/tecnico1:/bin/bash
   │     │   │    │     │           │              │
   │     │   │    │     │           │              └── shell de login
   │     │   │    │     │           └── carpeta home
   │     │   │    │     └── GECOS (info descriptiva)
   │     │   │    └── GID primario
   │     │   └── UID
   │     └── la 'x' significa que la contraseña real está en /etc/shadow
   └── nombre de usuario
sudo grep tecnico1 /etc/shadow

Formato:

tecnico1:$y$j9T$...HASH...:19850:0:99999:7:::
   │              │             │   │  │   │
   │              │             │   │  │   └── días de aviso antes de caducar
   │              │             │   │  └── máximo días entre cambios
   │              │             │   └── mínimo días entre cambios
   │              │             └── último cambio (días desde 1/1/1970)
   │              └── hash de la contraseña
   └── usuario

Caducidad y políticas con chage

sudo chage -l tecnico1                # ver política actual

# Forzar cambio en próximo login
sudo chage -d 0 tecnico1

# Caducidad cada 90 días, aviso a 7 días
sudo chage -M 90 -W 7 tecnico1

# Caducar cuenta el 31/12/2026
sudo chage -E 2026-12-31 tecnico1

sudo chage -l tecnico1

Políticas en /etc/login.defs y PAM

sudo grep -E "^PASS_" /etc/login.defs
# PASS_MAX_DAYS, PASS_MIN_DAYS, PASS_WARN_AGE

# Para complejidad: PAM module pwquality
sudo apt install -y libpam-pwquality
sudo grep pam_pwquality /etc/pam.d/common-password

5 Grupos y permisos compartidos (Linux)

sudo groupadd soporte
sudo groupadd departamento
sudo groupadd rrhh

sudo usermod -aG soporte tecnico1
sudo usermod -aG soporte tecnico2
sudo usermod -aG soporte tecnico3
sudo usermod -aG soporte tecnico4
sudo usermod -aG soporte tecnico5
sudo usermod -aG departamento direccion

# Importante: la -a hace ADD. Sin -a, BORRARÍA los grupos anteriores.

# Verificar
groups tecnico1
getent group soporte

Carpeta compartida con SGID

Aquí viene un detalle importante de Linux: cuando un usuario crea un archivo, el grupo del archivo es el grupo principal del usuario. Por ejemplo, si tecnico1 crea un archivo, el grupo será «tecnico1» (no «soporte»). Eso rompe la colaboración: aunque todos los técnicos estén en el grupo «soporte», cada archivo nuevo pertenece a un grupo personal distinto y los demás no pueden modificarlo.

La solución es el bit SGID (Set Group ID) en la carpeta: cuando una carpeta tiene SGID, los archivos que se creen dentro heredan el grupo de la carpeta en lugar del usuario que los crea. Así todos los archivos de la carpeta «soporte» pertenecen al grupo «soporte», independientemente de quién los cree.

# 1) Crear la carpeta compartida
sudo mkdir -p /srv/departamentos/soporte

# 2) Asignar el grupo "soporte" a la carpeta
#    chown :GRUPO ruta = cambiar solo el grupo (el "user:" se omite)
sudo chown :soporte /srv/departamentos/soporte

# 3) Permisos: 2770
#    El 2 inicial es el bit SGID.
#    7 (dueño)=rwx, 7 (grupo)=rwx, 0 (otros)=nada
sudo chmod 2770 /srv/departamentos/soporte

# Comprobar: en ls -ld debe aparecer "drwxrws---"
# La "s" minúscula en lugar de la "x" del grupo = SGID activo
ls -ld /srv/departamentos/soporte

# 4) Probar: que cada técnico cree un archivo
#    sudo -u USUARIO COMANDO ejecuta COMANDO como ese USUARIO
sudo -u tecnico1 touch /srv/departamentos/soporte/notas_t1.txt
sudo -u tecnico2 touch /srv/departamentos/soporte/notas_t2.txt

# Mira los archivos: el grupo debería ser "soporte" para los dos,
# NO "tecnico1" ni "tecnico2"
ls -la /srv/departamentos/soporte/
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

6 sudo y /etc/sudoers

sudo permite ejecutar un comando con privilegios de root. ¿Quién puede usar sudo? Lo define /etc/sudoers.

NUNCA edites /etc/sudoers directamente. Si te equivocas con una coma, el sistema deja de aceptar sudo. Usa SIEMPRE sudo visudo, que valida sintaxis antes de guardar.
Tres formas de dar sudo, de la más cómoda a la más restrictiva

Forma 1 · Añadir al grupo sudo. Es la habitual. Cualquiera de ese grupo puede ejecutar cualquier comando como root con su propia contraseña.

sudo usermod -aG sudo tecnico1

Forma 2 · Una regla individual en sudoers. Editas el archivo y añades una línea solo para ese usuario.

sudo visudo

Te abre /etc/sudoers en el editor por defecto (nano). Baja al final del archivo y añade exactamente esta línea:

tecnico1 ALL=(ALL:ALL) ALL

Significado: el usuario tecnico1 puede ejecutar todos los comandos (último ALL) como cualquier usuario (ALL:ALL) desde cualquier máquina (primer ALL). Guarda con Ctrl+O, Enter, Ctrl+X. visudo valida la sintaxis antes de guardar; si te equivocas, te avisa y te deja corregir.

Forma 3 · Regla limitada (lo más seguro). En lugar de dar sudo total, solo permitir comandos concretos. Misma técnica con visudo, pero añade una línea como esta:

tecnico2 ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/apt upgrade

Significado: tecnico2 puede ejecutar SOLO «apt update» y «apt upgrade» como root, y además sin contraseña (NOPASSWD). Para cualquier otra cosa, sudo le dirá que no. Es el principio de mínimo privilegio.

Probar como tecnico1
su tecnico1
sudo apt update    # debería pedirle SU contraseña, no la de root
exit

Diferencia entre su, sudo, sudo -i, sudo su

ComandoQué hace
suCambia a root (necesita contraseña de root). En Ubuntu por defecto está deshabilitado.
su - tecnico1Cambia a tecnico1 (contraseña de tecnico1) con su entorno completo.
sudo cmdEjecuta solo «cmd» como root, con TU contraseña.
sudo -iTe da un shell de root completo.
sudo su -Equivalente a sudo -i, más viejo.

Auditoría de sudo

sudo grep sudo /var/log/auth.log | tail -20

Cada uso de sudo queda registrado. Es la primera parada en una investigación de seguridad.

Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

7 Caso real · Reset de admin perdido

Escenario. Te llega un PC: el único usuario admin se fue de la empresa y nadie sabe la contraseña. No hay otro admin. ¿Cómo entras?

Linux · Modo single user / chroot

  1. Reinicia, mantén Mayús durante el arranque para ver GRUB.
  2. Selecciona la entrada habitual, pulsa e (edit).
  3. Localiza la línea que empieza por linux y al final añade init=/bin/bash.
  4. Ctrl+X o F10 para arrancar.
  5. Tendrás shell de root sin contraseña:
mount -o remount,rw /
passwd usuario_admin
# Nueva contraseña
sync; reboot -f

Windows · Reset desde un USB de instalación

  1. Arranca desde un USB de instalación de Windows 10/11.
  2. «Reparar el equipo» → Solucionar problemas → Símbolo del sistema.
  3. El truco clásico es sustituir sethc.exe (sticky keys) o utilman.exe por cmd.exe:
copy c:\windows\system32\cmd.exe c:\windows\system32\utilman.exe
# Reiniciar normalmente
# En la pantalla de login, pulsa el icono de accesibilidad: abre CMD como SYSTEM
# Desde ahí:
net user usuario_admin NuevaPwd2026.

Esto demuestra que el cifrado de disco (BitLocker) es imprescindible: sin él, cualquiera con acceso físico al disco puede entrar.

✓ Autoevaluación final

Progreso0%