¿Qué Hace chmod?
chmod (change mode, cambiar modo) es el comando de Linux y Unix que define quién puede leer, escribir y ejecutar un archivo o una carpeta. Cada archivo tiene tres conjuntos de permisos: uno para su propietario, otro para su grupo y otro para todos los demás (otros). La calculadora de arriba convierte esas nueve casillas en el número o las letras que espera chmod, y viceversa.
Puede indicar a chmod un modo de dos formas: como número octal, por ejemplo chmod 755 script.sh, o en forma simbólica, por ejemplo chmod u+x script.sh. Solo el propietario del archivo o root pueden cambiar sus permisos.

Cómo Funcionan los Permisos de Archivos en Linux
Cada permiso tiene un valor: lectura = 4, escritura = 2 y ejecución = 1. Súmelos para cada clase y obtendrá un dígito del 0 al 7; después escriba los tres dígitos en orden: propietario, grupo, otros. Así, rwx es 4+2+1 = 7, r-x es 4+0+1 = 5 y rwxr-xr-x es 755.
Si ejecuta ls -l, verá lo mismo en letras, por ejemplo -rwxr-xr-x. El primer carácter es el tipo de archivo (- para un archivo normal, d para un directorio, l para un enlace simbólico), seguido de tres grupos de rwx para propietario, grupo y otros. Un guion significa que ese permiso está desactivado.
Las letras significan cosas ligeramente distintas en archivos y en carpetas:
Archivo: abrirlo y leer su contenido. Carpeta: listar los nombres que contiene con ls.
Archivo: modificar su contenido. Carpeta: crear, eliminar y renombrar archivos dentro (también requiere ejecución en la carpeta). Eliminar un archivo depende del permiso de escritura de la carpeta, no del archivo.
Archivo: ejecutarlo como programa o script. Carpeta: entrar con cd y abrir por su nombre los archivos que contiene. Con lectura pero sin ejecución puede listar los nombres de una carpeta, pero no abrir nada dentro.
u es el propietario del archivo, g su grupo y o todos los demás. Linux usa solo la primera clase que coincide con usted: si es el propietario, los permisos del grupo y de otros no se le aplican, aunque permitan más.
Advertisement
Permisos chmod Comunes y Cuándo Usarlos
Estos modos cubren casi todos los casos reales. La mayoría también son botones predefinidos en la calculadora.
El valor predeterminado para la mayoría de los archivos: páginas web, imágenes y archivos de configuración que no son secretos. El propietario puede editar; los demás solo pueden leer.
El valor predeterminado para directorios y para programas o scripts que todos pueden ejecutar. Solo el propietario puede modificarlos.
Solo el propietario puede leer o escribir. Úselo para claves privadas SSH, archivos .env, tokens de API y cualquier otro archivo que contenga una contraseña.
Solo el propietario puede abrir o listar la carpeta. Es el estándar para ~/.ssh y las carpetas personales de scripts.
El propietario edita, un grupo (por ejemplo, el del servidor web) lee y nadie más puede ver el archivo.
El propietario tiene acceso completo, el grupo puede abrir y leer la carpeta y los demás quedan fuera.
El propietario y el grupo pueden editar. Es habitual en servidores de equipo donde varios usuarios comparten un grupo.
El propietario y el grupo pueden crear y eliminar archivos dentro; los demás solo pueden mirar.
Solo el propietario puede leer y nadie puede escribir. AWS indica que ejecute chmod 400 en un par de claves .pem descargado antes de usarlo con SSH.
Cualquier usuario y proceso de la máquina puede leerlo, modificarlo y ejecutarlo. Casi nunca es la solución correcta, como explica la siguiente sección.
chmod 755 vs 644 vs 777
755 y 644 solo se diferencian en el bit de ejecución: 755 permite a todos ejecutar el archivo o abrir la carpeta, 644 no. Por eso la regla habitual es carpetas 755, archivos 644: las carpetas necesitan ejecución para poder entrar en ellas, mientras que la mayoría de los archivos nunca deberían ejecutarse.
777 da permiso de escritura a todas las cuentas de la máquina, incluido el usuario del servidor web. Si cualquier sitio o script del servidor se ve comprometido, el atacante puede modificar o sustituir sus archivos, inyectar malware en sus páginas o instalar una puerta trasera. Cuando algo falla con «Permission denied», la solución real suele ser el propietario correcto (chown) o el grupo, no 777.
Permisos recomendados para los casos más comunes:
Archivos del sitio web (HTML, PHP, imágenes):
644. Carpetas del sitio web:755. Es lo que recomiendan WordPress y la mayoría de los paneles de control de hosting.wp-config.php y otros archivos con contraseñas de bases de datos: WordPress sugiere
440o400para que otros usuarios del servidor no puedan leerlos.600o640también los mantienen privados y permiten al propietario editarlos.Carpetas de subidas o de caché en las que debe escribir el servidor web: dé permiso de escritura al grupo del servidor web (
775) o haga propietario al usuario del servidor web, en lugar de usar777.Carpeta ~/.ssh:
700. Claves privadas (id_ed25519,id_rsa):600o400. authorized_keys:600. Claves públicas (.pub):644.Scripts de shell que quiera ejecutar:
755, o700si solo usted debe ejecutarlos.chmod +x script.shañade la ejecución sin tocar los demás bits.
Advertisement
Solucionar «Permissions 0644 are too open» en Claves SSH
SSH ignora una clave privada que otros usuarios pueden leer y muestra WARNING: UNPROTECTED PRIVATE KEY FILE! seguido de Permissions 0644 for '/home/you/.ssh/id_rsa' are too open. Ejecute chmod 600 ~/.ssh/id_rsa (o chmod 400) y vuelva a conectarse. En el lado del servidor, con la opción predeterminada StrictModes yes, el demonio SSH también ignora authorized_keys si ese archivo, ~/.ssh o su carpeta personal tienen permiso de escritura para el grupo o para otros.
Si los permisos son correctos y la conexión sigue fallando, compruebe que el puerto 22 está abierto en el servidor.
Permisos Especiales: Setuid, Setgid y Sticky Bit
Un cuarto dígito inicial añade tres bits especiales: 4 = setuid, 2 = setgid y 1 = sticky. Se suman como los demás, así que 6755 es setuid más setgid. En ls -l ocupan el lugar de la letra de ejecución: s en la posición del propietario o del grupo, t en la de otros.
Una particularidad de Linux: chmod 755 dir de GNU (y chmod 0755 dir) mantiene un bit setuid o setgid existente en un directorio. Para quitarlo, indíquelo explícitamente con chmod g-s dir (o chmod a-s dir para ambos bits), o use cinco dígitos: chmod 00755 dir.
Un programa con setuid se ejecuta con los privilegios de su propietario en lugar de los suyos. /usr/bin/passwd es 4755 (-rwsr-xr-x) en la mayoría de los sistemas Linux, para que los usuarios normales puedan actualizar el archivo de contraseñas, que pertenece a root. Linux ignora setuid en los scripts de shell y en los directorios.
En un programa, hace que se ejecute con el grupo del archivo. En una carpeta es más útil: los archivos nuevos creados dentro reciben el grupo de la carpeta, y las subcarpetas nuevas heredan setgid. 2775 es el modo clásico para una carpeta compartida de equipo.
En una carpeta, solo el propietario de un archivo, el propietario de la carpeta o root pueden eliminar o renombrar archivos en ella, aunque todos puedan escribir allí. Por eso /tmp es 1777 (drwxrwxrwt). Linux ignora el sticky bit en los archivos.
Una S o una T mayúscula en ls -l significa que el bit especial está activado pero el bit de ejecución de esa misma posición no. Por ejemplo, 4644 se muestra como rwSr--r-- y 1666 como rw-rw-rwT.
Advertisement
Modo Simbólico: u, g, o, a con +, - y =
El modo simbólico cambia los permisos en relación con los que ya existen, algo que un número octal no puede hacer. Tiene tres partes: quién (u propietario, g grupo, o otros, a todos), un operador (+ añadir, - quitar, = establecer exactamente) y los permisos (r, w, x, además de s y t). Separe varios cambios con comas y sin espacios.
chmod +x file sin letra de quién se aplica a las tres clases, menos lo que bloquee su umask. Con la umask habitual 022 equivale a a+x.
chmod u+x deploy.sh: permite al propietario ejecutar el script y no cambia nada más.chmod go-w report.txt: quita el permiso de escritura al grupo y a otros.chmod o= secrets.txt: quita todos los permisos a otros.chmod a+r index.html: todos pueden leer el archivo.chmod u=rwx,g=rx,o=rx app: la forma simbólica de escribir 755. La calculadora muestra esta forma para cualquier modo.chmod -R u=rwX,go=rX public_html: la X mayúscula añade ejecución solo a las carpetas y a los archivos que ya son ejecutables, así que las carpetas quedan en 755 y los archivos normales en 644.
umask: Permisos Predeterminados para Archivos Nuevos
La umask decide qué permisos reciben los archivos y carpetas nuevos. La mayoría de los programas crean archivos con 666 (rw-rw-rw-) y carpetas con 777, y se desactiva cada bit que esté activado en la umask. Con la umask habitual 022, los archivos nuevos quedan en 644 y las carpetas nuevas en 755.
Es una máscara de bits, no una resta. Con la umask 027, los archivos reciben 640; restar 027 de 666 dígito a dígito ni siquiera da un modo válido. Abra la pestaña Umask de la calculadora para ver el resultado de cualquier valor.
022: archivos 644, carpetas 755. El valor predeterminado habitual.002: archivos 664, carpetas 775. Permite que su grupo edite lo que usted crea; habitual donde cada usuario tiene un grupo privado.027: archivos 640, carpetas 750. Nada para otros, una buena opción en servidores.077: archivos 600, carpetas 700. Totalmente privado.Ejecute
umaskpara ver la suya,umask -Spara verla en letras yumask 027para cambiarla en la shell actual. Añada el comando a~/.bashrco~/.profilepara conservarla.
Advertisement
Cómo Usar la Calculadora Chmod
Marque Lectura, Escritura y Ejecución para el propietario, el grupo y otros, o haga clic en un modo predefinido como 644 o 755. Cada fila muestra su dígito sobre la marcha.
Escriba un número octal como 750 o 2775, o pegue una cadena simbólica como rwxr-x---. También funciona una cadena completa de ls -l como drwxr-sr-x, y se muestra el tipo de archivo.
Marque Setuid, Setgid o Sticky para obtener el modo de 4 dígitos. Aparece un aviso cuando un modo permite escribir a cualquiera sin el sticky bit.
Escriba el nombre de su archivo o carpeta, marque Recursivo para todo un árbol de directorios y copie el comando chmod numérico o simbólico. La dirección de la página guarda el modo (por ejemplo ?mode=750), así que puede añadirla a sus marcadores o compartirla.
Ejemplos del Comando chmod
Ejecútelos en una terminal de Linux o macOS. Anteponga sudo cuando el archivo pertenezca a otro usuario o a root.
chmod +x deploy.sh # añade ejecución
chmod 755 deploy.sh # o define el modo completo
./deploy.shfind /var/www/html -type d -exec chmod 755 {} +
find /var/www/html -type f -exec chmod 644 {} +chmod -R 755 folder # los archivos también se vuelven ejecutables
chmod -R u=rwX,go=rX folder # carpetas 755, archivos 644chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/id_ed25519.pubstat -c '%a %n' file # Linux: 644 file
stat -f '%Lp %N' file # macOS: 644 file
stat -f '%Mp%Lp %N' file # macOS con bits especiales: 0644 filechgrp developers /srv/project
chmod 2775 /srv/project # los archivos nuevos reciben el grupo developersMás Herramientas para Desarrolladores
Otras herramientas gratuitas para desarrolladores y administradores de sistemas, todas en su navegador. ¿Necesita ID únicos para archivos o registros? Pruebe el generador de UUID.
Rangos CIDR, máscaras de red y hosts utilizables con una cuadrícula visual de bits.
Compruebe si el puerto 22, 80, 443 o cualquier otro está abierto.
Contraseñas aleatorias robustas con análisis de entropía.
Timestamp Unix a fecha y viceversa, en cualquier zona horaria.