Parte: 0 — Fundamentos y prerrequisitos · Fuente: Michael Kerrisk, The Linux Programming Interface ⏱️ Duración estimada: 110 min · Nivel: Fundamentos
Dominar el modelo de archivos, permisos y usuarios de Linux, que es la base de la mayoría de escaladas de privilegios y de las medidas de hardening. Al terminar sabrás leer y modificar permisos, entender usuarios y grupos, y reconocer configuraciones peligrosas como binarios SUID.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | FHS | Saber dónde vive cada cosa acelera todo |
| 2 | /etc/passwd y /etc/shadow |
Fuente de usuarios y hashes de contraseña |
| 3 | Permisos rwx | Núcleo del control de acceso Unix |
| 4 | Notación octal | Forma compacta y examinable |
| 5 | Usuarios y grupos | UID/GID, grupos primarios y secundarios |
| 6 | SUID/SGID/sticky | Vector clásico de escalada de privilegios |
| 7 | chmod, chown, umask |
Modificar y establecer permisos por defecto |
| 8 | ACLs | Control fino más allá de rwx |
/etc, /bin, /var, /home...). Clave: /etc guarda configuración, /var/log los logs.x significa "poder entrar"./etc/shadow: almacena los hashes de las contraseñas, legible solo por root. Clave: objetivo de cracking offline.getfacl/setfacl para control granular.Trabaja en tu VM Kali o cualquier Linux del laboratorio. Necesitas una terminal y una cuenta con sudo. Comandos base: ls -l, chmod, chown, id, stat, find, getfacl/setfacl. Ten a mano las páginas de manual (man chmod).
bash
ls -la / ; ls -l /etc/passwd /etc/shadow
Observa que shadow no es legible por usuarios normales.
2. Leer permisos. Crea un archivo y examínalo:
bash
touch prueba.txt ; stat prueba.txt ; ls -l prueba.txt
Descompón la cadena -rw-r--r-- en propietario/grupo/otros.
3. Cambiar permisos en simbólico y octal:
bash
chmod u+x prueba.txt ; ls -l prueba.txt
chmod 640 prueba.txt ; ls -l prueba.txt
bash
sudo useradd -m alumno ; id alumno ; grep alumno /etc/passwd
bash
umask ; touch nuevo.txt ; ls -l nuevo.txt
bash
find / -perm -4000 -type f 2>/dev/null
Anota los que aparezcan; muchos son legítimos (sudo, passwd).
7. ACLs. Da acceso puntual a alumno sobre un archivo:
bash
setfacl -m u:alumno:r prueba.txt ; getfacl prueba.txt
rwxr-x---, rw-rw-r--, r--------.x en un directorio frente a en un archivo./etc/shadow tiene permisos 640 root:shadow y qué pasaría con 644.find, localiza archivos con escritura para "otros" en /etc y explica el riesgo.Configura una carpeta de proyecto compartida por un grupo equipo con estas propiedades: los miembros pueden crear y editar archivos, los archivos nuevos pertenecen automáticamente al grupo, y nadie puede borrar archivos ajenos. Documenta los permisos aplicados.
Criterio de aceptación: ls -ld de la carpeta muestra SGID y sticky bit activos; un segundo usuario del grupo puede crear un archivo que queda con grupo equipo, pero no puede borrar el del otro. Verificable con dos cuentas de prueba.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
Permission denied al entrar a un directorio |
Falta el bit x en el directorio. Añádelo con chmod +x. |
chmod 777 "para que funcione" |
Antipatrón peligroso: da control total a todos. Usa el mínimo necesario. |
No poder leer /etc/shadow como usuario |
Es correcto: solo root/grupo shadow. Usa sudo si tienes permiso. |
| SUID root en un script propio no eleva | El kernel ignora SUID en scripts por seguridad; solo aplica a binarios. |
| Permisos correctos pero acceso denegado | Puede haber una ACL o SELinux/AppArmor. Revisa getfacl y el LSM. |
❓ ¿Octal o simbólico? Ambos. Octal es compacto para asignar permisos completos; simbólico es cómodo para añadir/quitar un bit sin tocar el resto.
❓ ¿Por qué los binarios SUID son peligrosos? Porque ejecutan con privilegios del propietario. Si un SUID root tiene un fallo o permite ejecutar comandos, un usuario normal puede volverse root. GTFOBins cataloga muchos casos.
❓ ¿root puede saltarse los permisos? Sí, root ignora los permisos rwx tradicionales. Por eso limitar el uso de root y las escaladas es central en seguridad.
❓ ¿Las ACLs sustituyen a rwx? No, las complementan. rwx sigue siendo la base; las ACLs añaden entradas por usuario/grupo cuando rwx no basta.
man 1 chmod, man 5 passwd, man 5 shadow, man 1 setfaclClase 004 — Montaje del laboratorio: virtualización, Kali, snapshots y aislamiento de red
Clase 006 — Línea de comandos Linux avanzada: grep, sed, awk, pipes y procesos