Permisos en octal: leer 644 sin pensar
Un lab quirúrgico: solo traducir entre rwx y los tres dígitos octales, hasta que te salga automático.
Antes de empezar necesitás
- Saber qué son rwx y los bloques dueño/grupo/otros (lab anterior)
Al terminar vas a poder
- Convertir rwx a octal de memoria
- Convertir octal a rwx de memoria
- Leer 644, 600, 755 y 700 sin dudar
Entorno listo con Podman
Ocho archivos y carpetas con modos distintos para predecir el octal antes de mirar. lab-check compara tu predicción con stat.
# 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-en-octal -f entornos/linux-real/permisos-en-octal/Containerfile entornos
# Abrí el entorno (se borra al salir)
podman run --rm -it --name osl-permisos-en-octal --hostname labs osl/permisos-en-octal
# 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-en-octalcorre el mismo chequeo y copia tu evidencia aevidencia/permisos-en-octal/.- ¿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-en-octal/README.md.
Este lab hace una sola cosa: que leas permisos en octal sin frenar a pensar. Nada más. Es corto a propósito.
La regla, en una línea
Cada bloque de permisos (dueño, grupo, otros) es un número del 0 al 7. Se arma sumando:
r = 4 (leer)
w = 2 (escribir)
x = 1 (ejecutar)
Sumás dentro de cada bloque y te queda un dígito por bloque:
rwx = 4+2+1 = 7
rw- = 4+2+0 = 6
r-x = 4+0+1 = 5
r-- = 4+0+0 = 4
Entonces -rw-r--r-- se lee bloque por bloque: rw-=6, r--=4, r--=4 → 644.
Practicá hasta que sea automático
Te toca. El juego genera permisos al azar: traducilos a sus tres dígitos. Buscá una racha.
Juego: de rwx a octal
Traducí los permisos a sus tres dígitos. r=4, w=2, x=1.
----------Racha: 0
Con el repo clonado, npm run lab:check -- permisos crea un archivo temporal
con datos sintéticos, comprueba 600, lo cambia a 640, comprueba el nuevo
modo y borra solo ese archivo. Compará la salida con los bloques rw- y r--.
En Windows el script lo omite, porque no usa bits rwx POSIX: probalo en
Linux, macOS o WSL.
stat -c "%a %n" ~/.ssh/id_ed25519 2>/dev/null
# 600 /home/vt/.ssh/id_ed25519 ← una clave privada debe ser 600Los cuatro que vas a usar siempre
644 rw-r--r-- archivos normales (dueño escribe, el resto lee)
600 rw------- secretos: claves, .env, tokens
755 rwxr-xr-x ejecutables y directorios (todos entran/ejecutan)
700 rwx------ directorios privados (solo el dueño)
Si estos cuatro te salen de memoria, ya tenés el 90% de los casos reales cubiertos.
Lo que practicás en este lab
Llevátelo a tu repo si querés, pero no es obligatorio: es tu aprendizaje.
- Captura del juego con una racha de al menos 5 correctas seguidas
Reto
Llegá a una racha de 5 en el juego. Después corré stat -c '%a %n' sobre tres archivos tuyos y verificá que predecís el número antes de verlo.
Resolvelo y escribí dos líneas explicando qué pasó. Con eso lo fijás.