Permisos, usuarios y procesos: la base real de Linux
Quién sos, qué podés tocar y qué se está ejecutando. Los tres ejes que explican casi todo lo que pasa en un sistema Linux.
Antes de empezar necesitás
- Una terminal en Linux, WSL o una VM descartable
- Saber abrir una shell y escribir comandos
Al terminar vas a poder
- Identificar tu usuario, grupos y UID/GID
- Leer los permisos de un archivo en formato rwx y octal
- Cambiar permisos con chmod y entender qué implica
- Listar procesos y entender con qué usuario corren
- Encontrar qué procesos están escuchando en qué puertos
Miralo en video
- Linux EXPLICADO FACIL (como ingeniero)VT Security · YouTubeLos mismos tres ejes del lab: usuarios, permisos y procesos.
Entorno listo con Podman
Debian con dos usuarios, un servidor de juguete que corre como www-data y sudo descartable para ver el dueño de cada puerto. lab-check revisa notas.txt en 600 y tu evidencia de ls, ps y ss.
# Una vez: cloná el repo y construí la imagen
git clone https://github.com/ValentinTorassa/Open-Security-Labs.git
cd Open-Security-Labs
podman build -t osl/permisos-usuarios-procesos -f entornos/linux-real/permisos-usuarios-procesos/Containerfile entornos
# Abrí el entorno (se borra al salir)
podman run --rm -it --name osl-permisos-usuarios-procesos --hostname labs --cap-add=SYS_PTRACE osl/permisos-usuarios-procesos
# Al terminar, adentro del contenedor
lab-checklab-checkrevisa lo que hiciste y guarda el resultado en/home/vt/evidencia. Desde otra terminal, en la carpeta del repo,npm run lab:check -- linux-real/permisos-usuarios-procesoscorre el mismo chequeo y copia tu evidencia aevidencia/permisos-usuarios-procesos/.- ¿Usás Docker? Cambiá podman por docker en los comandos y funciona igual.
- Qué trae, qué revisa y sus límites: entornos/linux-real/permisos-usuarios-procesos/README.md.
Antes de hablar de seguridad, hardening o servidores, hay tres preguntas que Linux se hace todo el tiempo:
- ¿Quién sos? (usuario y grupos)
- ¿Qué podés tocar? (permisos)
- ¿Qué se está ejecutando, y como quién? (procesos)
Si entendés esas tres cosas, el 80% de los “errores raros” de Linux dejan de ser magia y pasan a ser preguntas con respuesta.
1. Quién sos
whoami
idwhoami te dice tu nombre de usuario. id te dice mucho más: tu UID (número de usuario), tu GID (grupo primario) y todos los grupos a los que pertenecés.
El UID 0 es especial: es root. No es “el admin” por configuración, es root porque su UID es 0. Por eso cambiar de usuario importa tanto en seguridad.
2. Qué podés tocar
Listá un directorio con detalle:
ls -lCada línea empieza con algo así: -rw-r--r--. Eso es el corazón del modelo de permisos de Linux. Se lee en bloques:
- rw- r-- r--
tipo dueño grupo otros
- tipo:
-archivo,ddirectorio,lenlace. - dueño (user): el usuario que posee el archivo.
- grupo (group): el grupo que posee el archivo.
- otros (other): todos los demás.
Cada bloque tiene tres permisos: r (read/leer), w (write/escribir), x (execute/ejecutar). Si la letra está, el permiso existe; si hay un -, no.
El mismo permiso, en octal
Los permisos también se escriben con números. Cada permiso vale: r=4, w=2, x=1. Se suman por bloque:
rw- = 4+2+0 = 6
r-- = 4+0+0 = 4
rwx = 4+2+1 = 7
Entonces -rw-r--r-- es 644, y -rwxr-xr-x es 755.
Cambiar permisos
echo "mis notas" > notas.txt
ls -l notas.txt # probablemente -rw-r--r-- (644)
chmod 600 notas.txt
ls -l notas.txt # ahora -rw------- (600)Con 600 el dueño puede leer y escribir, y nadie más puede ni leer. Esa es la base de proteger una clave SSH, un archivo de config o un token.
3. Qué se está ejecutando
Un proceso es un programa en ejecución. Y todo proceso corre con la identidad de algún usuario, lo que define qué puede tocar.
ps aux | headLa primera columna es el usuario dueño del proceso. Eso importa: si un servicio web corre como root y lo comprometen, el atacante es root. Si corre como un usuario limitado, el daño queda acotado. A eso se le llama principio de mínimo privilegio.
4. Procesos que escuchan en la red
Un proceso que abre un puerto está aceptando conexiones. Saber quién escucha dónde es media investigación de seguridad.
ss -tulpn-tTCP,-uUDP-lsolo los que están escuchando (listening)-pel proceso dueño (puede requerir sudo para verlo completo)-nnúmeros de puerto, sin resolver nombres
Si ves un puerto abierto que no reconocés, esa es exactamente la pregunta correcta: ¿qué proceso es, quién lo levantó y por qué está expuesto?
Cerrando
No memorizaste comandos: entendiste un modelo. Quién sos (UID/grupos), qué podés tocar (rwx/octal) y qué corre y cómo (procesos y puertos). Sobre esa base se construyen el hardening, el debugging y la respuesta a incidentes.
Lo que practicás en este lab
Llevátelo a tu repo si querés, pero no es obligatorio: es tu aprendizaje.
- Screenshot de un cambio de permisos (antes y después de chmod)
- Writeup de 2 párrafos explicando la diferencia entre usuario, grupo y otros
- Salida de ss -tulpn con rutas o datos sensibles tachados
Reto
Creá un archivo notas.txt, dejalo legible solo para tu usuario (chmod 600), verificá con ls -l y explicá en dos líneas por qué el grupo y otros ya no pueden leerlo.
Resolvelo y escribí dos líneas explicando qué pasó. Con eso lo fijás.