Guía del sistema octal
Octal Number System
The octal system uses 8 digits: 0-7. Each octal digit represents exactly 3 binary bits. That's why 64₁₀ = 100₈. Historically used in UNIX/Linux file permissions (chmod 755 = rwxr-xr-x) and memory addressing in older 8-bit systems.
Permisos de archivos en Linux
Los permisos de Linux (chmod) usan tres dígitos octales: propietario, grupo y otros. Cada dígito es la suma de los permisos: lectura=4, escritura=2, ejecución=1. Por ejemplo chmod 755 = rwxr-xr-x (7=r+w+x, 5=r+x, 5=r+x). chmod 644 = rw-r--r--.
Aplicaciones prácticas
File permissions: chmod 400 (read only), chmod 755 (full), chmod 600 (private). Used rarely in Python and Java. In older IBM System/360 used for disk addressing. Conversion: 64₁₀ = 100₈, 255₁₀ = 377₈.
El octal sobrevive porque 755 son exactamente nueve bits de permiso
El octal casi ha desaparecido de la informática, con una excepción llamativa: los permisos de archivo de Unix. No es costumbre. Tres indicadores de permiso caben exactamente en un dígito octal, y tres clases de usuario hacen nueve bits, así que un modo son precisamente tres dígitos, sin relleno y sin sobras.
Cómo funciona
- Convierte entre octal, decimal, binario y hexadecimal.
- Lee modos de permiso, donde cada dígito codifica lectura, escritura y ejecución para una clase.
- Hace visible la correspondencia de tres bits por dígito, que es toda la razón de que la notación perdure.
1 dígito octal = 3 bits = 8 valores (0–7) permisos: r = 4, w = 2, x = 1 7 = 4+2+1 = rwx 5 = 4+0+1 = r-x 6 = 4+2+0 = rw- modo = dígito de propietario, grupo y otros → 9 bits, 512 modos posibles
Ejemplo resuelto
Leer los modos habituales como sus equivalentes simbólicos.
- 755 → rwxr-xr-x, el modo habitual de un directorio o ejecutable
- 644 → rw-r--r--, el modo habitual de un archivo
- 600 → rw-------, legible solo por su propietario
- 777 → rwxrwxrwx, escribible por cualquiera
Cada dígito es de forma independiente la suma de 4, 2 y 1. 755 da todo al propietario y concede a grupo y otros lectura y ejecución pero no escritura, y por eso es el valor por defecto de todo lo que debe ejecutarse o recorrerse sin ser modificado.
Cómo leer el resultado
- 777 es casi siempre un error. Permite que cualquier usuario del sistema modifique el archivo, y suele recurrirse a él cuando un problema de permisos no se ha entendido, no porque la escritura universal se desee de verdad.
- Un directorio necesita permiso de ejecución para poder recorrerse. La lectura lista los nombres; la ejecución da acceso a lo que hay dentro. Por eso 644 en un directorio produce la situación confusa de ver nombres de archivo que no puedes abrir.
- La umask resta, no fija. Con la umask habitual 022, un archivo nuevo parte de 666 y queda en 644, y un directorio nuevo parte de 777 y queda en 755: exactamente de ahí salen esos dos modos conocidos.
- Un cuarto dígito inicial activa setuid, setgid y el sticky bit: 4755 en lugar de 755. Rara vez hace falta y conviene entenderlo antes de usarlo, porque setuid en el binario equivocado es un riesgo real de escalada de privilegios.
Preguntas frecuentes
- ¿Por qué octal y no hexadecimal para los permisos?
- Porque los permisos van en grupos de tres bits y el octal es exactamente tres bits por dígito. El hexadecimal partiría un grupo de tres bits entre dos dígitos, y se perdería la correspondencia limpia de un dígito por clase.
- ¿Qué debo usar en la práctica?
- 644 para archivos corrientes, 755 para directorios y ejecutables, 600 para todo lo que contenga secretos como claves o credenciales. Ve más allá solo si puedes decir con precisión qué acceso adicional concedes y a quién.