Calculadora Chmod

Calculadora interactiva de permisos de archivos Linux/Unix.

Ningún dato sale de tu dispositivo
Lectura (4)
Escritura (2)
Ejecución (1)
Propietario
Grupo
Otros
Numérico
Simbólico ---------
chmod 000 filename

Permisos habituales

Cómo usar

  1. Marca las casillas para definir los permisos de lectura, escritura y ejecución para Propietario, Grupo y Otros.
  2. O escribe directamente un valor numérico de 3 dígitos (p. ej. 755).
  3. La notación simbólica y el comando chmod se actualizan en tiempo real.
  4. Haz clic en Copiar el comando para copiar el comando chmod completo.

Referencia de permisos

Número Permiso Símbolo
0Ningún permiso---
1Solo ejecución--x
2Solo escritura-w-
3Escritura + ejecución-wx
4Solo lecturar--
5Lectura + ejecuciónr-x
6Lectura + escriturarw-
7Lectura + escritura + ejecuciónrwx

Preguntas frecuentes

¿Qué significa chmod 755?

755 significa que el propietario puede leer, escribir y ejecutar (7), mientras que el grupo y los demás pueden leer y ejecutar pero no escribir (5). Es el permiso más habitual para carpetas y scripts.

¿Cuál es la diferencia entre 644 y 755?

644 (rw-r--r--) autoriza al propietario a leer/escribir y a todos los demás solo a leer · típico en archivos. 755 (rwxr-xr-x) añade el permiso de ejecución · típico en carpetas y scripts.

¿Funciona también para carpetas?

Sí. Los permisos numéricos funcionan igual. Para carpetas, «ejecución» significa poder entrar en la carpeta y acceder a su contenido.

El modelo de permisos de Unix en 9 bits

Cada archivo y directorio de un sistema de tipo Unix lleva un «modo», un pequeño entero que registra quién puede hacer qué. El modelo está esencialmente inalterado desde Unix Sixth Edition (mayo de 1975), y las primeras entradas del manual de chmod aparecen en Unix Version 1 (noviembre de 1971). Codifica nueve bits de permiso dispuestos como tres tríos de lectura / escritura / ejecución, un trío para el propietario del archivo, otro para su grupo y otro para todos los demás:

Owner    Group    Others
r w x    r w x    r w x
4 2 1    4 2 1    4 2 1

Cada grupo de tres bits es exactamente un dígito octal porque tres bits codifican 2³ = 8 valores distintos (0-7). Los pesos 4, 2, 1 son 2², 2¹, 2⁰. Sumar cualquier combinación de lectura (4) + escritura (2) + ejecución (1) produce los ocho dígitos posibles por clase sin colisión: esa es toda la correspondencia de octal a simbólico. chmod 755 significa, por tanto, rwx (4+2+1=7) para el propietario, r-x (4+1=5) para el grupo y r-x para todos los demás.

La cadena de 10 caracteres que ves en ls -l son los mismos datos más una columna adicional al principio para el tipo de archivo: - para un archivo normal, d para un directorio, l para un enlace simbólico, c para un dispositivo de caracteres, b para un dispositivo de bloques, p para una tubería con nombre, s para un socket. Los nueve caracteres restantes son los tríos de permisos.

Notación simbólica: chmod u+x archivo

Los modos octales sobrescriben los nueve bits a la vez. Los modos simbólicos son no destructivos: solo cambian los bits que nombras. La gramática es quién + op + perm:

Ejemplos útiles:

Los modos numéricos son explícitos e idempotentes (chmod 755 siempre significa los mismos nueve bits). Los modos simbólicos son quirúrgicos (chmod g+w solo cambia un bit). Los scripts de producción tienden a preferir el numérico por la claridad en los registros de auditoría; los operadores que teclean en el shell tienden a preferir el simbólico para ajustes incrementales.

Modos comunes y para qué sirven

ModoSimbólicoUso típico
755rwxr-xr-xEjecutables públicos y directorios estándar, /usr/bin/*, docroots web, árboles de trabajo de Git
644rw-r--r--Archivos normales estándar, configuración, código fuente, documentos
700rwx------Directorio privado, ~/.ssh, documentos personales que nadie más debería ver
600rw-------Archivo privado, ~/.ssh/id_rsa, ~/.gnupg/*, archivos de contraseñas
444r--r--r--Solo lectura para todos, datos de referencia fijos, índices del registro de Cargo
750rwxr-x---Propietario total, grupo lectura/recorrido, otros nada, directorio de servicio compartido por grupo
777rwxrwxrwxCasi siempre incorrecto. Véase más abajo.

Por qué chmod 777 es casi siempre incorrecto

Poner un archivo en 777 lo hace legible, escribible y ejecutable por todo el mundo. Cualquier usuario de la máquina (incluidas las cuentas de servicio sin privilegios y cualquier proceso que llegue a verse comprometido) puede leer el contenido del archivo, modificarlo y ejecutarlo. El típico consejo de los tutoriales, «haz chmod 777 hasta que funcione», es un antipatrón de seguridad que ha sido responsable de incontables brechas reales: archivos de configuración escribibles por todos que se manipulan, directorios web escribibles por todos que se convierten en vectores de desfiguración, archivos de registro escribibles por todos que permiten la falsificación de registros, directorios ejecutables por todos que permiten la ejecución de código arbitrario.

Si un error de permisos te bloquea, la solución correcta es casi siempre cambiar el propietario del archivo (con chown) o su grupo (con chgrp) para que el usuario que necesita acceso sea realmente el propietario o copropietario del archivo, no quitar los controles de acceso a todo el mundo.

Bits especiales: setuid, setgid, sticky

Un cuarto dígito octal antepuesto al modo desbloquea tres bits especiales, todos reliquias del diseño original de Unix:

La visualización de ls -l cambia el carácter de ejecución por s, S, t o T cuando estos bits están establecidos (las mayúsculas significan que el bit está establecido pero el bit de ejecución subyacente no).

umask: el inverso de chmod

chmod establece los permisos de los archivos existentes. umask determina los permisos predeterminados de los archivos que creas, actuando como una máscara sustractiva. La aritmética: un archivo normal nuevo sería 666 (rw-rw-rw-), un directorio nuevo 777, menos lo que esté establecido en la umask. Valores comunes:

Teclear umask sin argumentos muestra el valor actual. Establecerlo en el inicio de tu shell (~/.bashrc, ~/.zshrc) o en /etc/login.defs se aplica a toda la sesión.

Archivos frente a directorios: distintos significados de x

Los mismos bits r/w/x significan cosas sutilmente distintas en los directorios que en los archivos:

chmod recursivo y el patrón find

chmod -R 755 /var/www aplica el mismo modo a cada archivo y directorio del árbol, lo cual es casi siempre incorrecto porque los archivos y los directorios quieren modos distintos (p. ej., 644 para archivos, 755 para directorios). El modismo correcto usa find:

find /var/www -type f -exec chmod 644 {} +
find /var/www -type d -exec chmod 755 {} +

O, de forma equivalente, usando la X mayúscula del chmod de GNU: chmod -R u=rwX,go=rX /var/www concede ejecución solo en directorios y en archivos que ya tenían ejecución en algún sitio, exactamente el resultado que normalmente quieres.

Enlaces simbólicos, ACL y cómo Linux amplía el modelo

Dos matices que conviene conocer:

Más preguntas

¿Por qué se rechaza mi clave SSH con «permissions are too open»?

Porque el cliente de OpenSSH se niega a usar una clave privada que sea legible por el grupo o por todo el mundo, partiendo de que cualquier cosa que otras personas puedan leer no debería ser una credencial. La solución es chmod 600 ~/.ssh/id_rsa (y chmod 700 ~/.ssh en el propio directorio). La misma lógica para ~/.gnupg/ y la mayoría de los demás almacenes de credenciales.

¿Cuál es la diferencia entre chmod y chown?

chmod cambia los bits de modo, lo que pueden hacer propietario/grupo/otros. chown cambia quién es el propietario. Con frecuencia necesitas ambos: un archivo que «el usuario equivocado no puede leer» normalmente no necesita que se abran sus permisos; necesita pertenecer al usuario que necesita el acceso. Prueba primero chown myuser:mygroup file.

¿Debería usar 666 para los archivos de registro?

Casi nunca. Los archivos de registro escribibles por todos permiten que cualquier proceso (incluido un servicio comprometido que se ejecute como un usuario con pocos privilegios) falsifique entradas de registro o borre el registro. El patrón estándar es hacer que el directorio de registros sea escribible por un grupo de registro concreto (adm en Debian, wheel en BSD, etc.) y añadir los servicios pertinentes a ese grupo, o usar logrotate + un demonio de registro (rsyslog, systemd-journald) que se encargue de la propiedad de los archivos por ti.

¿Tiene en cuenta esta calculadora los bits especiales?

No, cubre los nueve bits de permiso base (el modo estándar de 3 dígitos). Para setuid (4xxx), setgid (2xxx) o sticky (1xxx), antepondrías el dígito inicial a mano. La inmensa mayoría del trabajo cotidiano con chmod usa modos de 3 dígitos y nunca toca los bits especiales.

¿Se envía algo a un servidor?

No. La conversión conmutador ↔ octal ↔ simbólico es pura aritmética, calculada en tu navegador. La página funciona sin conexión una vez cargada.

Herramientas relacionadas

Generador .htaccess Generador de expresiones Cron Calculadora de hash de archivos gratuita