Calcula los permisos de archivos Unix y el comando chmod
Esta calculadora chmod convierte los permisos de archivos de Linux y macOS a todas las formas que necesitas: marca lectura, escritura y ejecución para el propietario, el grupo y los demás, o escribe un modo octal como <code>755</code> o uno simbólico como <code>rwxr-xr-x</code>, y las demás vistas se actualizan. Obtienes el comando <code>chmod</code> correspondiente en forma numérica y simbólica, los bits setuid, setgid y sticky, y un resumen en lenguaje sencillo de quién puede hacer qué. Todo se calcula en tu navegador.
Cómo calcular permisos chmod
- 1Marca los permisos que quieras para Propietario, Grupo y Otros, o escribe un modo octal como
644o uno simbólico comorw-r--r--. También puedes pegar una columna entera dels -l, comodrwxr-sr-x. - 2Elige Archivo o Directorio: lectura, escritura y ejecución significan cosas distintas en cada caso, y la explicación cambia en consecuencia.
- 3Añade el bit setuid, setgid o sticky si lo necesitas, o parte de un modo común como 755 o 600.
- 4Escribe la ruta, activa Recursivo si debe aplicarse a todo un árbol y copia el comando chmod.
Cómo funcionan los permisos octales
Cada archivo tiene tres conjuntos de permisos: uno para su propietario (u), otro para su grupo (g) y otro para los otros (o), es decir, todos los demás. Cada conjunto son tres bits —lectura, escritura y ejecución— y un dígito octal es simplemente su suma: lectura vale 4, escritura 2 y ejecución 1. Así, 7 es rwx (4+2+1), 6 es rw- (4+2), 5 es r-x (4+1) y 4 es r-- solo.
Tres dígitos forman el modo completo, en el orden propietario, grupo, otros. Por eso chmod 755 da al propietario rwx y a todos los demás r-x, escrito rwxr-xr-x, mientras que chmod 644 da al propietario rw- y a todos los demás r--, escrito rw-r--r--. Un cuarto dígito delante contiene los bits especiales: 4 para setuid, 2 para setgid y 1 para sticky, como en chmod 1777.
Valores chmod habituales
- 644 (rw-r--r--)
- El valor por defecto para archivos normales: el propietario puede editar y todos pueden leer. Adecuado para HTML, imágenes y la mayoría de la configuración.
- 755 (rwxr-xr-x)
- El valor por defecto para directorios, scripts y programas: todos pueden leer y ejecutar, solo el propietario puede modificar.
- 600 (rw-------)
- Archivos privados que solo el propietario puede leer: claves privadas SSH, archivos .env, credenciales. ssh rechaza una clave privada que otros puedan leer.
- 700 (rwx------)
- Un directorio privado, como ~/.ssh, en el que solo su propietario puede entrar.
- 664 / 775
- Como 644 y 755, pero el grupo también puede escribir: para carpetas de proyecto compartidas entre compañeros de un mismo grupo.
- 777 (rwxrwxrwx)
- Cualquiera puede leer, modificar y ejecutar. Casi nunca es la solución correcta a un error de permisos, y es un riesgo de seguridad en un servidor web.
- 1777 (rwxrwxrwt)
- Escribible por todos con el sticky bit, como /tmp: todos pueden crear archivos, pero solo el propietario de un archivo puede borrarlo.
Permisos en directorios
En un directorio, las tres letras significan otra cosa. Lectura te permite listar los nombres que contiene; escritura te permite crear, renombrar y borrar entradas en él; ejecución (a menudo llamada búsqueda) te permite entrar con cd y acceder a los archivos por su nombre. Lectura y escritura sirven de poco sin ejecución, por eso los directorios casi siempre tienen x donde tienen r: 755 en lugar de 644.
Borrar un archivo es un cambio en su directorio, no en el archivo. Cualquiera con permiso de escritura y ejecución en un directorio puede borrar cualquier archivo que contenga, incluso uno de solo lectura que no sea suyo, salvo que el directorio tenga el sticky bit.
Setuid, setgid y el sticky bit
En la forma simbólica, los bits especiales sustituyen a la letra de ejecución: s cuando la ejecución también está activa y S cuando no, y t o T para el sticky bit. Una mayúscula suele indicar un error, porque un programa setuid que nadie puede ejecutar no hace nada.
Una peculiaridad de GNU coreutils: chmod 755 en un directorio conserva un bit setuid o setgid existente. Para quitarlos con un número, escribe cinco dígitos —chmod 00755— o usa chmod g-s.
- Setuid (4000, u+s)
- Un ejecutable se ejecuta con los privilegios de su propietario y no con los de quien lo llama. passwd lo usa para escribir /etc/shadow como root. Linux lo ignora en scripts y directorios.
- Setgid (2000, g+s)
- Un ejecutable se ejecuta con los privilegios de su grupo. En un directorio, los archivos nuevos heredan el grupo del directorio en lugar del grupo principal de su creador: la configuración habitual para carpetas de equipo (2775).
- Sticky bit (1000, +t)
- En un directorio, solo el propietario de un archivo, el propietario del directorio o root pueden borrar o renombrar los archivos que contiene. Linux moderno lo ignora en archivos.
¿chmod numérico o simbólico?
Un modo numérico como chmod 644 file fija todos los bits a la vez, que es lo que quieres cuando conoces el estado final. La forma simbólica es más flexible: chmod u=rw,g=r,o=r file hace lo mismo, mientras que chmod g+w file o chmod o-rwx file cambian solo los bits indicados y dejan el resto intacto.
Cuidado con chmod -R: un único modo para todos los archivos y directorios de un árbol suele dar a los archivos bits de ejecución que no deberían tener. Usa find . -type d -exec chmod 755 {} + y find . -type f -exec chmod 644 {} + para tratarlos por separado, o la X mayúscula de chmod -R u=rwX,go=rX, que añade ejecución solo a directorios y a archivos que ya la tenían. Los archivos nuevos reciben sus permisos iniciales de la umask: una umask de 022 da archivos 644 y directorios 755. Para buscar nombres de archivo en scripts de shell, prueba el probador de expresiones regulares.
Preguntas frecuentes
- ¿Qué significa chmod 755?
- 755 da al propietario lectura, escritura y ejecución (7), y al grupo y a todos los demás lectura y ejecución (5 y 5), escrito rwxr-xr-x. Es el modo habitual para directorios, scripts y programas.
- ¿Qué significa chmod 644?
- 644 da al propietario lectura y escritura (6) y a todos los demás solo lectura (4 y 4), escrito rw-r--r--. Es el modo habitual para archivos normales como páginas web, imágenes y archivos de configuración.
- ¿Qué diferencia hay entre 755 y 644?
- 755 añade ejecución para todos. En un archivo permite ejecutarlo como programa; en un directorio permite entrar en él. Usa 644 para archivos que solo se leen y 755 para directorios y ejecutables.
- ¿Es seguro chmod 777?
- Casi nunca. 777 permite a cualquier usuario del sistema modificar o reemplazar el archivo, y en un servidor web puede permitir que un atacante que entra por un sitio modifique otros. Mejor corrige el propietario con chown o da acceso al grupo (775 o 664).
- ¿Qué permisos debe tener una clave privada SSH?
- 600 (rw-------), o 400 para solo lectura, con ~/.ssh en 700. OpenSSH se niega a usar una clave privada que otros usuarios puedan leer y muestra "UNPROTECTED PRIVATE KEY FILE".
- ¿Qué significa la s o la t en rwsr-xr-x?
- Una s en la posición del propietario o del grupo es el bit setuid o setgid con la ejecución también activa; una t en la posición de otros es el sticky bit. S o T mayúscula significa que el bit especial está activo sin el permiso de ejecución debajo.
- ¿Cómo convierto rwxr-xr-x en un número?
- Divídelo en tres grupos —rwx, r-x, r-x— y suma r=4, w=2 y x=1 en cada uno: 7, 5, 5, es decir, 755. Escríbelo en el campo simbólico de arriba para convertirlo al instante.
- ¿Esta herramienta modifica algún archivo?
- No. Solo calcula el modo y el comando; el comando lo ejecutas tú. Todo ocurre en tu navegador.