Calculadora chmod
Permisos de archivo Unix en octal y rwx, en ambos sentidos.
Acerca de esta herramienta
Marca lectura, escritura y ejecución para el propietario, el grupo y los demás para obtener el modo octal y el comando chmod, o escribe un modo como 755 o rwxr-xr-x para ver lo que permite. Incluye setuid, setgid y el sticky bit.
Cómo se usa
- Escribe un modo como 755, 0644 o rwxr-xr-x, o pega la primera columna de ls -l.
- O marca lectura, escritura y ejecución para el propietario, el grupo y los demás.
- Añade setuid, setgid o el sticky bit si los necesitas.
- Introduce el nombre del archivo y copia el comando chmod.
Preguntas
- ¿Qué significa chmod 755?
- El propietario puede leer, escribir y ejecutar; el grupo y todos los demás pueden leer y ejecutar. Es el modo habitual para scripts, programas y carpetas.
- ¿Qué diferencia hay entre 644 y 755?
- 644 (rw-r--r--) es para archivos normales: solo el propietario puede modificarlos y nadie puede ejecutarlos. 755 añade el permiso de ejecución, que los programas necesitan para ejecutarse y las carpetas para que se puedan abrir.
- ¿Por qué mi clave SSH necesita 600?
- SSH rechaza las claves privadas que otros usuarios pueden leer. 600 significa que solo tú puedes leer y escribir el archivo, que es justo lo que comprueba.
- ¿Alguna vez es buena idea chmod 777?
- Casi nunca. Permite que cualquier usuario de la máquina modifique o sustituya el archivo. Cuando algo solo funciona con 777, la solución real suele ser el propietario (chown) o el grupo correctos, no permisos más amplios.
- ¿Qué significan las letras s y t?
- Una s en la posición del propietario o del grupo es setuid o setgid: el programa se ejecuta con los permisos del propietario o del grupo del archivo, o los archivos nuevos de una carpeta heredan su grupo. La t es el sticky bit: en una carpeta compartida como /tmp, cada persona solo puede eliminar sus propios archivos.
- ¿Por qué chmod dice “Operation not permitted”?
- Solo el propietario del archivo o root pueden cambiar su modo, así que usa sudo o corrige antes el propietario con chown. En FAT, exFAT y muchos recursos compartidos de red, los permisos no se guardan y vienen de las opciones de montaje. En Linux, un archivo marcado como inmutable con chattr +i también rechaza chmod hasta que se quita el atributo.
- ¿Git conserva los permisos de los archivos?
- Solo el bit de ejecución. Git registra un archivo como 100644 o 100755 e ignora todo lo demás, incluidos el grupo y los demás usuarios. Para marcar un script como ejecutable desde Windows, ejecuta git update-index --chmod=+x script.sh. Si Git indica cambios de modo que no has hecho, por ejemplo en una unidad compartida, pon core.fileMode a false en ese repositorio.
- ¿Qué diferencia hay entre chmod y chown?
- chmod cambia lo que el propietario, el grupo y los demás pueden hacer con un archivo. chown cambia quiénes son el propietario y el grupo, como en sudo chown www-data:www-data uploads. Cuando un servicio no puede escribir en algún sitio, dar la carpeta al usuario o al grupo del servicio es más seguro que ampliar el modo para todos.
¿Cómo funcionan los números de chmod?
Cada permiso tiene un valor: lectura vale 4, escritura 2 y ejecución 1. Súmalos para obtener un dígito, así que 7 significa rwx, 6 significa rw- y 5 significa r-x. Un modo tiene tres dígitos, para el propietario, el grupo y todos los demás, en ese orden. Por eso chmod 640 da al propietario lectura y escritura, al grupo solo lectura y a los demás nada. El Conversor de bases numéricas muestra cada dígito como tres bits binarios.
Un cuarto dígito delante establece los bits especiales: 4 para setuid, 2 para setgid y 1 para el sticky bit, así que chmod 2775 es 775 más setgid. En la primera columna de ls -l, el primer carácter es el tipo de archivo (d para una carpeta, l para un enlace simbólico, - para un archivo normal), seguido de nueve letras de permisos. Una S o una T mayúscula significa que el bit especial está activado pero el de ejecución no, lo que suele ser un error.
Números vs letras en chmod (modo simbólico)
Los números siempre establecen los nueve bits a la vez: chmod 644 file sustituye lo que hubiera. Las letras pueden cambiar una sola cosa y mantener el resto. chmod u+x deploy.sh añade ejecución para el propietario, chmod go-w file quita la escritura al grupo y a los demás, y = establece una lista exacta, como en chmod o= secret.txt. Aquí cada resultado se muestra de las dos formas, por ejemplo chmod 755 file y chmod u=rwx,g=rx,o=rx file.
Si no indicas u, g, o ni a, chmod aplica el cambio a todos, pero se salta los bits bloqueados por tu umask. La umask también decide el modo de los archivos nuevos: con la habitual umask 022, los archivos nuevos obtienen 644 y las carpetas nuevas 755. Ejecuta umask para ver la tuya. Si tus compañeros siguen creando archivos que el grupo no puede editar, una umask de 002 suele ser la solución, y no un chmod -R posterior.
Cómo aplicar chmod a carpetas y archivos de forma distinta
chmod -R 755 dir hace ejecutables todos los archivos, y rara vez es lo que quieres. Usa una X mayúscula en su lugar: chmod -R u=rwX,go=rX dir da permiso de ejecución solo a las carpetas y a los archivos que ya eran ejecutables. Para tener estrictamente carpetas 755 y archivos 644, haz dos pasadas: find dir -type d -print0 | xargs -0 chmod 755, y luego lo mismo con -type f y 644.
“Permission denied” en un archivo que parece legible suele venir de una carpeta superior. Para abrir una ruta necesitas permiso de ejecución en cada carpeta del camino, y permiso de lectura para listar el contenido de una carpeta. Un archivo 644 dentro de una carpeta 700 sigue siendo privado para el propietario. En Linux, namei -l /path/to/file muestra el modo de cada parte de la ruta, así que puedes localizar la carpeta que bloquea el acceso.
Permisos chmod habituales
Los modos que más te vas a encontrar, qué permite cada uno y dónde se usa.
| Modo | rwx | Quién puede hacer qué | Uso típico |
|---|---|---|---|
chmod 755 | rwxr-xr-x | El propietario puede leer, escribir y ejecutar. El grupo puede leer y ejecutar. Los demás pueden leer y ejecutar. | Scripts, programas y carpetas que otros pueden abrir |
chmod 644 | rw-r--r-- | El propietario puede leer y escribir. El grupo puede leer. Los demás pueden leer. | Archivos normales: todos pueden leerlos, solo tú puedes editarlos |
chmod 600 | rw------- | El propietario puede leer y escribir. El grupo no puede hacer nada. Los demás no pueden hacer nada. | Archivos privados como claves SSH y archivos .env |
chmod 700 | rwx------ | El propietario puede leer, escribir y ejecutar. El grupo no puede hacer nada. Los demás no pueden hacer nada. | Carpetas privadas y scripts que solo tú puedes ejecutar |
chmod 775 | rwxrwxr-x | El propietario puede leer, escribir y ejecutar. El grupo puede leer, escribir y ejecutar. Los demás pueden leer y ejecutar. | Carpetas en las que un grupo trabaja en conjunto |
chmod 664 | rw-rw-r-- | El propietario puede leer y escribir. El grupo puede leer y escribir. Los demás pueden leer. | Archivos que un grupo edita en conjunto |
chmod 750 | rwxr-x--- | El propietario puede leer, escribir y ejecutar. El grupo puede leer y ejecutar. Los demás no pueden hacer nada. | Programas y carpetas solo para ti y tu grupo |
chmod 640 | rw-r----- | El propietario puede leer y escribir. El grupo puede leer. Los demás no pueden hacer nada. | Archivos de configuración que el grupo de un servicio puede leer |
chmod 444 | r--r--r-- | El propietario puede leer. El grupo puede leer. Los demás pueden leer. | Archivos de solo lectura que nadie debe cambiar |
chmod 777 | rwxrwxrwx | El propietario puede leer, escribir y ejecutar. El grupo puede leer, escribir y ejecutar. Los demás pueden leer, escribir y ejecutar. | Todos pueden hacerlo todo: evítalo fuera de pruebas desechables |
¿Algo no funciona o un resultado parece incorrecto? Informar de un problema con esta herramienta