Tarde o temprano, cualquiera que se acerque a Linux acaba copiando una orden de un foro que empieza por chmod 755 y sigue con una ruta. Funciona, el problema se arregla y nadie explica qué acaba de pasar. Y como funciona, la siguiente vez se copia otra con 777, que también funciona, y esa sí deja el archivo abierto a todo el mundo.
Esos tres dígitos no son un código arbitrario que haya que memorizar. Son un número en octal, y cada cifra se lee igual que las demás. Este artículo explica de dónde salen los números de chmod, qué significa cada uno y por qué con entender la regla sobran las listas de combinaciones, con lo que dicen el manual de GNU coreutils y las páginas de manual del propio sistema.
La columna que aparece con ls -l
Todo empieza en algo que se ve antes de tocar nada. Al listar un directorio en formato largo, con ls -l, la primera columna de cada línea es una ristra de letras y guiones parecida a -rwxr-xr-x. Ahí está escrito el permiso completo del archivo, y los números de chmod no son más que otra forma de escribir exactamente lo mismo.
El primer carácter no es un permiso: dice qué es eso. Un guion es un archivo normal y una d es un directorio. Los nueve que vienen detrás se leen de tres en tres, y ahí está toda la historia.
Tres permisos y tres grupos de gente
El manual de coreutils lo dice con tres frases. Hay tres tipos de permiso que se pueden tener sobre un archivo: leer, escribir —es decir, modificarlo— y ejecutar, que significa correrlo como programa. Y hay tres categorías de gente que pueden tenerlos por separado: el dueño del archivo, los usuarios que están en el grupo del archivo y todos los demás.
Tres permisos por tres categorías son los nueve caracteres de la columna. El primer trío es lo que puede hacer el dueño, el segundo lo que puede hacer el grupo y el tercero lo que puede hacer cualquiera.
La parte que casi nunca se cuenta bien es qué significan esos tres permisos en un directorio, porque no es lo intuitivo. Según el mismo manual: leer un directorio es poder listar su contenido; escribir en él es poder crear y borrar archivos dentro; y ejecutarlo es poder acceder a los archivos que hay dentro. De ahí sale una consecuencia que sorprende: se puede tener permiso para borrar un archivo que no es tuyo y que no puedes ni leer, porque borrar no depende del archivo, sino del directorio que lo contiene.
De dónde salen los números: por qué el 7 es todo
Cada uno de esos tres permisos es un bit: está o no está. Tres bits juntos, encendidos los tres, son 111 en binario, y 111 en binario es 7. Eso es todo el misterio: cada cifra de chmod resume el trío de permisos de una de las tres categorías.
Los valores de cada permiso, tal como los enumera el manual, son estos:
Leer, 4. Escribir, 2. Ejecutar, 1. Se suman. Leer y escribir son 6; leer y ejecutar son 5; los tres, 7; ninguno, 0. Y como el orden es siempre dueño, grupo y demás, un 640 se lee del tirón: el dueño lee y escribe, el grupo solo lee, el resto no puede nada.
Conviene saber además que los números se interpretan siempre en octal, sin necesidad de escribir el cero delante: el manual aclara que el modo 0055 es el mismo que el modo 55. Y avisa de una excepción que veremos más abajo: los modos de cinco dígitos o más a veces son especiales.
Los tres números que se ven a diario
Con la regla anterior, los tres modos que aparecen en todos los tutoriales dejan de ser fórmulas.
644 es el modo normal de un archivo de datos: el dueño lee y escribe (4+2), y el grupo y los demás solo leen. Un documento, una imagen o un archivo de configuración no necesitan ejecutarse.
755 es el modo normal de un programa y de un directorio: el dueño lo puede todo (4+2+1) y los demás pueden leer y ejecutar, pero no modificar. En un directorio, ese 5 es lo que permite entrar y listar sin poder crear ni borrar nada dentro.
777 es todo para todos, y por eso es mala idea como solución rápida: el tercer 7 incluye el 2, y ese 2 significa que cualquier usuario del sistema puede modificar o vaciar el archivo. Cuando algo «solo funciona con 777», lo que falla casi siempre es el dueño o el grupo, no los permisos.
El propio manual da dos equivalencias que valen como piedra de toque: el modo numérico 664 es lo mismo que el simbólico ug=rw,o=r, y el modo 4751 equivale a u=srwx,g=rx,o=x. El primero es un archivo compartido con el grupo; el segundo tiene cuatro cifras, y esa primera cifra es el asunto de dos secciones más abajo.
La otra forma de escribirlo, y cuándo es mejor
El mismo comando acepta modos simbólicos, con el formato que describe su página de manual: a quién afecta —u el dueño, g el grupo, o los demás, a todos—, un operador y los permisos, con letras del conjunto rwxXst.
Los operadores son tres y no hacen lo mismo. + añade los permisos indicados a los que ya había. - los quita. Y = los pone y borra los que no se mencionan, que es la diferencia importante: chmod u+x añade ejecución al dueño y deja el resto como estaba, mientras que chmod u=x deja al dueño solo con ejecución y le quita lectura y escritura.
Ahí está la limitación que el manual le reconoce a los números: un modo numérico no puede tener en cuenta el modo anterior, solo fijarlo en absoluto. Si lo que se quiere es un retoque —añadir ejecución sin tocar nada más—, el simbólico es la herramienta correcta.
Un detalle fino del manual, por si aparece: si no se indica u, g, o ni a, el efecto es como si se hubiera puesto a, salvo que los bits que estén en el umask no se tocan.
La cuarta cifra: setuid, setgid y el bit sticky
Los bits de modo tienen dos partes: los permisos normales y tres bits especiales, que ocupan una cifra más por delante y que solo afectan a ejecutables y, en la mayoría de sistemas, a directorios. Sus valores son 4000 para setuid, 2000 para setgid y 1000 para el sticky.
setuid hace que, al ejecutar el programa, el proceso tome el identificador de usuario efectivo del archivo en lugar del de quien lo lanza. setgid hace lo mismo con el grupo y, en un directorio, tiene un efecto que se usa mucho en carpetas compartidas: lo que se crea dentro hereda el grupo del directorio, sin importar el grupo de quien lo crea.
El tercero tiene mala fama por su nombre. En un directorio, el bit sticky es en realidad una marca de borrado restringido: impide que un usuario sin privilegios borre o renombre lo que hay dentro salvo que sea suyo o suyo sea el directorio. Es lo que llevan los directorios en los que puede escribir todo el mundo, /tmp el primero.
El umask: por qué un archivo nuevo no nace como tú quieres
Si los permisos se fijan al crear, ¿por qué un archivo recién creado no tiene el modo que uno esperaría? Por el umask, que la página de manual de la llamada al sistema define como la máscara de creación de modo de archivo: los permisos que estén en el umask se apagan del modo con el que se crean archivos y directorios.
No es un permiso, es un filtro; por eso los valores típicos parecen del revés. Y hay un matiz que conviene guardar para el día que algo no cuadre: si el directorio padre tiene una ACL por defecto, el umask se ignora y los permisos salen de esa ACL heredada. El propio manual da la equivalencia: la ACL u::rwx,g::r-x,o::r-x hace lo mismo que un umask de 022.
Cuatro cosas que casi nadie cuenta
La X mayúscula. Entre las letras de los modos simbólicos hay una X que no es lo mismo que x: aplica la ejecución solo si el archivo es un directorio o si ya tiene permiso de ejecución para alguien. Es justo lo que hace falta al arreglar los permisos de un árbol entero de forma recursiva, porque chmod -R a+x vuelve ejecutables todos los archivos de datos y chmod -R a+X no.
Los cinco dígitos. En directorios, chmod conserva los bits setuid y setgid salvo que se los nombre expresamente: chmod 755 sobre un directorio los deja como estaban. Para limpiarlos con un número hace falta un cero de más —00755—, un menos delante, -6000, o un igual, =755. Con modos simbólicos, a-s.
Los enlaces simbólicos. chmod no cambia los permisos de un enlace simbólico: en la mayoría de sistemas la llamada al sistema no puede, y los permisos del enlace se ignoran. Si el enlace se nombra en la orden, lo que cambia son los permisos del archivo apuntado; y al recorrer directorios de forma recursiva, los enlaces que encuentre por el camino se ignoran.
Los bits no son todo. El propio manual recuerda que, además de estos, puede haber atributos propios del sistema de archivos —listas de control de acceso, inmutabilidad, compresión— que se tocan con otras herramientas, como chattr. Si un permiso parece correcto y aun así algo falla, ahí hay un sitio donde mirar.
Si estás en WSL, lo que ves puede no ser lo que manda
Quien practica esto desde WSL, el subsistema de Windows para Linux, se topa con un caso aparte en cuanto toca archivos de Windows, y la documentación de Microsoft lo explica sin rodeos.
Los metadatos que guardan permisos de Linux en archivos de Windows no están activados por defecto. Sin ellos, lo que se ve es una traducción: se calculan los permisos efectivos del usuario de Windows y se ponen iguales para dueño, grupo y demás, de modo que un archivo con lectura y ejecución pero sin escritura aparece como r-x en los tres tríos. Y un chmod ahí solo tiene un efecto: si se quitan todos los permisos de escritura, se activa el atributo solo lectura del archivo en Windows.
Con los metadatos activados, el sistema guarda cuatro atributos extendidos de NTFS —$LXUID, $LXGID, $LXMOD y $LXDEV—, pero la advertencia de Microsoft es la que hay que recordar: no puedes darte más acceso del que tienes en Windows. Un chmod 777 puede dejar escrito en los metadatos que tienes permiso de escritura y aun así no dejarte escribir, porque toda lectura o escritura sobre un archivo de Windows pasa por los permisos de tu usuario de Windows.
chmod cambia el permiso, no el dueño
La última confusión habitual es pedirle a chmod algo que no es suyo. Su manual lo describe como «cambia los bits de modo de un archivo»; quien cambia de manos un archivo es chown, «cambia el dueño y el grupo de un archivo». Cuando un programa no puede escribir en una carpeta, muchas veces la respuesta correcta no es abrir los permisos a todo el mundo, sino poner al dueño o al grupo que corresponde y dejar el modo en 755 o en 644.
Para practicar todo esto sin tocar el equipo de cada día valen igual un USB live y el propio WSL. Y si estos dos comandos son los primeros que pruebas, lo que va antes es la lista corta de comandos de la terminal, con ls -l a la cabeza, que es donde se ve la columna con la que empieza este artículo.
Te puede interesar
Tech Planet participa en el programa de afiliados de Amazon. Si compras a través de estos enlaces, recibimos una pequeña comisión sin coste extra para ti, lo que nos ayuda a seguir creando contenido como este.
| Imagen | Producto | Características | Comprar |
|---|---|---|---|
![]() |
Yubico YubiKey 5C NFC | USB-C y NFC · FIDO2/WebAuthn, FIDO U2F, OTP, tarjeta inteligente y OpenPGP · sin pilas ni batería | Ver precio en Amazon |
![]() |
Yubico YubiKey 5 NFC, pack USB-A y USB-C | Dos llaves, una USB-A y otra USB-C · NFC · FIDO2/WebAuthn, U2F, OTP y tarjeta inteligente | Ver precio en Amazon |
![]() |
Bitdefender Total Security 2026, 5 dispositivos | Un año para cinco dispositivos · Windows, macOS, iOS y Android · código de activación por email | Ver precio en Amazon |
![]() |
Thetis Pro FIDO2 | FIDO 2.0 y NFC · doble conector USB-A y USB-C · cubierta metálica giratoria de 360° | Ver precio en Amazon |









