Linux es un sistema multiusuario: cada archivo pertenece a un usuario (dueño) y a un grupo, y define qué puede hacer cada quién mediante permisos. El usuario root (UID 0) tiene control total; el resto son usuarios limitados. Este modelo es la base de la seguridad del sistema.
Los permisos controlan tres acciones —leer (r), escribir (w) y ejecutar (x)— sobre tres categorías: dueño, grupo y otros.
Lectura de permisos (ls -l):
-rwxr-xr-- 1 juan devs archivo.sh
│└┬┘└┬┘└┬┘
│ │ │ └── otros: solo lectura (r--)
│ │ └───── grupo: leer y ejecutar (r-x)
│ └──────── dueño: leer, escribir, ejecutar (rwx)
└────────── tipo: - archivo, d directorio, l enlace
Permisos en notación numérica (octal):
| Permiso | Valor |
|---|---|
| r (lectura) | 4 |
| w (escritura) | 2 |
| x (ejecución) | 1 |
Se suman por categoría. Ejemplos:
chmod 755→ dueñorwx(7), grupor-x(5), otrosr-x(5).chmod 644→ dueñorw-(6), grupor--(4), otrosr--(4).
Comandos clave:
chmod 755 script.sh # cambia permisos
chown juan archivo # cambia el dueño
chgrp devs archivo # cambia el grupo
sudo comando # ejecuta como root (con privilegios)
Permisos especiales y seguridad:
- SUID → el ejecutable corre con los permisos de su dueño, no de quien lo ejecuta. Un binario SUID de root mal configurado permite escalar privilegios.
- SGID → similar, pero con el grupo.
- Sticky bit → en directorios, solo el dueño puede borrar sus propios archivos (ej.
/tmp).
Buscar binarios SUID es una técnica habitual de escalada:
find / -perm -4000 -type f 2>/dev/null
Los permisos son la aplicación directa del mínimo privilegio en Linux y un punto central en la escalada de privilegios (pilar Pentest).