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
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
id whoami 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 -l Cada 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 | head La 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.