← Teoría P4 · UF0853 · Permisos, cuotas y cifrado ✓ Guardado

Práctica 4 · Permisos, cuotas y cifrado

UF: UF0853 · Sesión: 4 / 10 · Modalidad: individual
Entorno: VM Windows + VM Ubuntu · Necesita: haber hecho la P3 (disco extra con particiones)
Entregable: este archivo con capturas y respuestas

De qué va. Hoy proteges los datos a 3 niveles: permisos (quién puede ver/modificar qué), cuotas (cuánto espacio puede usar cada uno) y cifrado (que solo abra el dueño). Lo harás con un escenario realista: un equipo donde conviven 2 usuarios y hay carpetas privadas, compartidas y cifradas.

Por qué importa. Es la diferencia entre «mi PC» y «un equipo profesional». Sin esto, cualquiera con acceso físico ve todo.

Antes de empezar: en la VM Windows necesitas tener al menos 2 usuarios. Si solo tienes uno, en la sección 1 te explico cómo crearlo rápido (luego en la P7 lo haremos en profundidad).

1 Preparar dos usuarios para los experimentos

En Windows · Crear «alumno2»
  1. Win+I → Cuentas → Otros usuarios → Agregar cuenta.
  2. «No tengo la información de inicio de sesión» → «Agregar un usuario sin cuenta Microsoft».
  3. Nombre: alumno2 · contraseña: alumno2. (con punto al final).
  4. Déjalo como cuenta estándar (no admin).
En Ubuntu · Crear «alumno2»
sudo adduser alumno2
# Sigue las preguntas. Password: alumno2.
id alumno2
ls /home    # verás la carpeta /home/alumno2

2 Permisos NTFS con herencia (Windows)

Crear la estructura
mkdir C:\Equipo
mkdir C:\Equipo\Publico
mkdir C:\Equipo\Privado_Admin
mkdir C:\Equipo\Solo_Lectura
Configurar permisos a mano
  1. Clic derecho C:\Equipo → Propiedades → Seguridad.
  2. Verás los grupos heredados: SYSTEM, Administradores, Usuarios autenticados...
  3. AvanzadasDeshabilitar herencia → «Convertir los permisos heredados en permisos explícitos».
  4. Edita y deja:
    • SYSTEM — Control total.
    • Administradores — Control total.
    • Tu usuario admin — Control total.
    • (quita el resto)
Configurar cada subcarpeta
CarpetaUsuario / grupoPermiso
PublicoUsuarios (locales)Modificar
Privado_AdminSolo administradoresControl total
Solo_LecturaUsuariosLectura y ejecución

Para añadir un usuario o grupo: Seguridad → Editar → Agregar → escribes alumno2 → Comprobar nombres → Aceptar → marcas el nivel de permiso.

Verificar desde CMD con icacls
icacls C:\Equipo
icacls C:\Equipo\Publico
icacls C:\Equipo\Privado_Admin
icacls C:\Equipo\Solo_Lectura
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Probar como alumno2
  1. Cierra sesión y entra como alumno2.
  2. Intenta:
    • Crear un archivo en C:\Equipo\Publico: ¿se puede?
    • Crear un archivo en C:\Equipo\Solo_Lectura: ¿se puede?
    • Abrir C:\Equipo\Privado_Admin: ¿qué pasa?
CarpetaCrear archivoAbrir
Publico
Solo_Lectura
Privado_Admin

Tomar posesión

Vuelve como admin. Imagina que un archivo se quedó «huérfano» porque su dueño se fue de la empresa.

REM Crea un archivo y «dáselo» a alumno2
echo "huerfano" > C:\Equipo\Privado_Admin\huerfano.txt
icacls C:\Equipo\Privado_Admin\huerfano.txt /setowner alumno2

REM Verifica
icacls C:\Equipo\Privado_Admin\huerfano.txt

REM Como admin, recupera la posesión
takeown /F C:\Equipo\Privado_Admin\huerfano.txt
icacls C:\Equipo\Privado_Admin\huerfano.txt

3 Permisos en Linux: chmod simbólico y octal

Crear estructura de prueba
cd ~
mkdir -p Equipo/{publico,privado,solo_lectura}
echo "hola publico" > Equipo/publico/hola.txt
echo "secreto privado" > Equipo/privado/secreto.txt
echo "lectura solo" > Equipo/solo_lectura/lectura.txt

ls -la Equipo/

chmod octal · cálculo en directo

Recuerda: r=4 · w=2 · x=1. Suma los que quieras para cada grupo (propietario, grupo, otros).

Quiero...Notación rwxOctalComando
Yo todo, grupo lee y ejecuta, otros leerwxr-xr--754chmod 754 f
Yo y mi grupo todo, otros nadarwxrwx---chmod ___ f
Solo yo lectura, nadie másr--------
Yo todo, mi grupo lee, otros nadarwxr-----
Todos todo (peligroso)rwxrwxrwx
Yo escribo y leo, otros nadarw-------
Aplicar y verificar
cd ~/Equipo
chmod 644 publico/hola.txt
chmod 600 privado/secreto.txt
chmod 444 solo_lectura/lectura.txt

ls -la publico/hola.txt privado/secreto.txt solo_lectura/lectura.txt

chmod simbólico

# u=user, g=group, o=others, a=all
chmod u+x publico/hola.txt           # añade x al usuario
chmod o-r privado/secreto.txt        # quita r a otros
chmod g=rx solo_lectura/lectura.txt  # grupo = exactamente rx
chmod a-w publico/hola.txt           # nadie escribe

ls -la publico/hola.txt privado/secreto.txt solo_lectura/lectura.txt

chown · cambiar propietario

# Dale el archivo a alumno2
sudo chown alumno2 privado/secreto.txt
ls -la privado/secreto.txt

# Y el grupo también
sudo chown alumno2:alumno2 privado/secreto.txt
ls -la privado/secreto.txt

# Recursivo: toda la carpeta y su contenido
sudo chown -R $USER:$USER ~/Equipo
Probar como alumno2

Vamos a cambiarnos a alumno2 y comprobar qué puede y qué no. Ojo: por defecto Ubuntu crea las carpetas personales con permisos 750, lo que significa que otros usuarios no pueden entrar. Antes de la prueba abrimos el «paso» a tu home (solo el bit x = poder atravesar la carpeta, sin permitir leer su listado).

# 1) Sustituye TU_USUARIO por tu nombre de usuario real en los comandos
#    (averígualo con: whoami)

# 2) Abre el bit x en tu home para que alumno2 pueda atravesarla
chmod o+x ~

# 3) Cámbiate a alumno2 (te pide su contraseña: alumno2.)
su alumno2

# 4) Ya eres alumno2. Comprueba con:
whoami

# 5) Intenta leer los archivos de TU_USUARIO
#    Sustituye TU_USUARIO por el tuyo real:
ls /home/TU_USUARIO/Equipo/publico/
cat /home/TU_USUARIO/Equipo/privado/secreto.txt

# 6) Sal de la sesión de alumno2 y vuelve a la tuya
exit

Si secreto.txt tiene permisos 600 (solo dueño), el cat del paso 5 debe FALLAR con un mensaje del tipo «Permission denied».

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

El bit x en carpetas

En archivos, x = ejecutar. En carpetas, x = poder entrar con cd. Sin x, no puedes hacer cd aunque tengas r.

mkdir test_x
chmod 644 test_x   # sin x
cd test_x          # Permission denied
chmod 755 test_x   # con x
cd test_x          # funciona
cd ..

4 Listas de control de acceso (ACL) en Linux

El modelo rwx clásico se queda corto cuando quieres dar permisos a varios usuarios distintos a la vez. Las ACL lo permiten.

Instalar herramientas
sudo apt install -y acl
mount | grep acl   # verifica que el FS soporta ACL (ext4 sí por defecto)
Escenario: quiero que secreto.txt lo pueda leer solo alumno2, además del dueño.

Sintaxis de setfacl:

  • -m = «modificar» (añadir o cambiar).
  • u:alumno2:r = al USUARIO «alumno2», dale permiso «r» (lectura).
  • (También existe g:grupo:rw para grupos.)
cd ~/Equipo/privado

# Sin ACL no podrías dar lectura solo a un usuario extra
# sin tener que abrirla a "otros". Con ACL sí:
sudo setfacl -m u:alumno2:r secreto.txt

# Comprueba: ls -la te muestra un + al final de los permisos
# indicando que ese archivo tiene ACL extendidas
ls -la secreto.txt

# Para ver la ACL completa:
getfacl secreto.txt
Heredar ACL en una carpeta
sudo setfacl -d -m u:alumno2:rwx ~/Equipo/publico

# Cualquier archivo nuevo dentro hereda esta ACL
touch ~/Equipo/publico/nuevo.txt
getfacl ~/Equipo/publico/nuevo.txt
Quitar ACL
sudo setfacl -x u:alumno2 ~/Equipo/privado/secreto.txt
getfacl ~/Equipo/privado/secreto.txt

# Borrar todas las ACL
sudo setfacl -b ~/Equipo/publico
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

5 Cifrado en Windows · BitLocker en disco virtual

Requisito: tu VM Windows debe ser Pro o Enterprise (Home no tiene BitLocker). Si tienes Home, salta a la sección 6 y haz solo el cifrado de Linux. Para verlo: winver.

Vamos a cifrar el disco extra E: que añadiste en la P3 (si lo eliminaste, créalo de nuevo y formatealo NTFS).

Activar BitLocker en E:
  1. Abre el Explorador → clic derecho en E:Activar BitLocker.
  2. Elige «Usar contraseña para desbloquear la unidad» → contraseña BitLocker2026!
  3. Guardar la clave de recuperación → «en un archivo». Guárdala en C:\Users\<tú>\Desktop\clave_E.txt.
  4. «Cifrar solo el espacio usado» (más rápido para esta prueba).
  5. «Modo compatible» (mejor compatibilidad).
  6. Iniciar cifrado. Tarda unos minutos.
LA CLAVE DE RECUPERACIÓN ES IMPRESCINDIBLE. Sin ella, si olvidas la contraseña, los datos son irrecuperables. En esta práctica vamos a usarla a propósito.
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Probar el cifrado
  1. Crea un archivo de prueba en E:\
  2. Cierra sesión o reinicia la VM.
  3. Al volver, al hacer doble clic en E: → pide contraseña.
  4. Pruébala. ¿Funciona?
Recuperar con la clave (escenario olvido de contraseña)
  1. Bloquea E: (clic derecho → Bloquear unidad).
  2. Doble clic → cuando pida contraseña, escribe una incorrecta. «Más opciones» → «Introducir clave de recuperación».
  3. Abre clave_E.txt, copia los 48 dígitos, pégalos.
  4. Confirma que la unidad se abre.
Gestionar BitLocker desde CMD
manage-bde -status E:
manage-bde -lock E:        REM bloquear inmediatamente
manage-bde -unlock E: -password
manage-bde -off E:         REM descifrar (cuidado)

6 Cifrado en Linux · LUKS en disco virtual

LUKS (Linux Unified Key Setup) es el estándar de cifrado de particiones en Linux. Vamos a cifrar /dev/sdb3 (la partición FAT32 que creaste en la P3 — la vamos a re-formatear, así que asegúrate de que no tiene datos importantes).

Paso 1 · Desmontar y limpiar
sudo umount /mnt/fat32_compat 2>/dev/null

# Quita la línea de /etc/fstab para que no falle al arrancar
sudo nano /etc/fstab
# Comenta con # la línea de /dev/sdb3 y guarda
Paso 2 · Crear contenedor LUKS sobre sdb3
sudo apt install -y cryptsetup

# Inicializa la partición como LUKS (CUIDADO: borra los datos)
sudo cryptsetup luksFormat /dev/sdb3
# Confirma con YES (mayúsculas)
# Contraseña: LinuxLUKS2026!
Paso 3 · Abrir el contenedor y formatear dentro
# Abrir como mapeo (se crea /dev/mapper/cripta)
sudo cryptsetup open /dev/sdb3 cripta

# Verifica
ls -la /dev/mapper/cripta
lsblk

# Formatea ext4 DENTRO del contenedor
sudo mkfs.ext4 -L "CIFRADO" /dev/mapper/cripta

# Montar
sudo mkdir -p /mnt/cifrado
sudo mount /dev/mapper/cripta /mnt/cifrado
df -h | grep cifrado
Paso 4 · Probar
echo "Este archivo está dentro de LUKS" | sudo tee /mnt/cifrado/prueba.txt
sudo cat /mnt/cifrado/prueba.txt

# Cerrar (lo cifra de vuelta)
sudo umount /mnt/cifrado
sudo cryptsetup close cripta
lsblk
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Paso 5 · Reabrir tras cerrar
sudo cryptsetup open /dev/sdb3 cripta
# Pide la contraseña: LinuxLUKS2026!
sudo mount /dev/mapper/cripta /mnt/cifrado
ls /mnt/cifrado/
sudo cat /mnt/cifrado/prueba.txt
Paso 6 · Múltiples contraseñas (slot keys)

LUKS soporta hasta 8 contraseñas distintas (slots). Útil para entornos con varios admins.

sudo cryptsetup luksAddKey /dev/sdb3
# Pide la contraseña existente (LinuxLUKS2026!)
# Después pide la nueva: backup2026!

sudo cryptsetup luksDump /dev/sdb3 | grep -A2 "Key Slot"
Caso real. Las distros como Ubuntu ofrecen «Cifrar la nueva instalación» al instalar. Eso configura LUKS sobre la raíz automáticamente. Saber gestionarlo desde consola te permite reparar instalaciones cifradas que arrancan mal.

7 Cuotas de disco

Cuotas en Windows

  1. Clic derecho en C: → Propiedades → pestaña Cuota → Mostrar configuración de cuota.
  2. Marca «Habilitar la administración de cuota».
  3. Marca «Denegar espacio en disco a usuarios que excedan el límite de cuota».
  4. Limitar espacio: 500 MB, nivel de advertencia: 400 MB.
  5. Aplicar.
  6. Entradas de cuota → Cuota → Nueva entrada de cuota → busca alumno2 → asigna 200 MB / 150 MB.
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

Cuotas en Linux

Más antiguo, pero funcional. Se usa en aulas y servidores.

sudo apt install -y quota

# Editar /etc/fstab para añadir las opciones usrquota,grpquota a /home
# Si /home es partición propia. Si no, a /
sudo nano /etc/fstab
# Cambia la línea de la raíz / o de /home:
#   ANTES:   ... ext4 defaults 0 1
#   DESPUÉS: ... ext4 defaults,usrquota,grpquota 0 1

sudo mount -o remount /

# Inicializar cuotas
sudo quotacheck -cum /
sudo quotaon /

# Asignar cuota a alumno2: soft 50M, hard 100M
sudo setquota -u alumno2 51200 102400 0 0 /

# Verificar
sudo quota -u alumno2
sudo repquota /

8 Reto final · Escenario realista

Escenario. Tu cliente es una clínica con 5 técnicos. Te pide:
  • Una carpeta Compartida donde todos lean y escriban.
  • Una carpeta Solo_Dirección a la que solo accede la directora.
  • Una carpeta Solo_Lectura_Protocolos que todos leen pero solo la directora modifica.
  • El disco principal cifrado con BitLocker (o LUKS si es Linux) por si roban un equipo.
  • Cada usuario con un máximo de 1 GB en su carpeta.

✓ Autoevaluación final

Progreso0%