BrowserTools
Inicio / Calculadoras / Calculadora chmod

Calculadora chmod

Calcula permisos de archivos Unix en números como 755 o letras como rwxr-xr-x, y mira qué permiten.

Cargando Calculadora chmod… Si no ocurre nada, activa JavaScript.

Cada archivo y carpeta en Linux, macOS y otros sistemas tipo Unix tiene tres grupos de permisos: uno para su propietario, otro para su grupo y otro para todos los demás. Cada grupo puede permitir leer, escribir y ejecutar, y chmod es el comando que los cambia. Esta calculadora muestra los mismos permisos en todas las formas que te encuentras en la práctica. Marca las casillas de la cuadrícula, escribe un número como 644 o 2775, o pega las letras de ls -l como drwxr-sr-x, y las otras dos formas se actualizan al instante. Debajo tienes comandos chmod listos para copiar en forma numérica y simbólica (chmod 755 file y chmod u=rwx,g=rx,o=rx file), con un nombre de archivo opcional y la opción recursiva -R.

Preguntas frecuentes

¿Qué significa chmod 755?
Cada dígito es una clase: propietario, grupo y otros. 7 es lectura (4) más escritura (2) más ejecución (1), y 5 es lectura más ejecución. Así, 755 deja al propietario hacerlo todo, mientras que el grupo y los demás pueden leer y ejecutar el archivo, o listar y entrar en la carpeta, pero no modificarlo. En letras es rwxr-xr-x. Es el modo habitual para programas, scripts y carpetas web.
¿Qué diferencia hay entre 644 y 755?
En ambos solo el propietario puede escribir. 644 (rw-r--r--) no da permiso de ejecución a nadie, lo que va bien para documentos, imágenes, configuración y páginas web. 755 añade ejecución a las tres clases, algo que los programas necesitan para funcionar y las carpetas para poder entrar en ellas. Una carpeta con 644 no se puede abrir, una causa frecuente de errores "Permission denied".
¿Qué significan s, S, t y T en los permisos?
Una s minúscula en la posición de ejecución del propietario significa setuid más ejecución, y en la del grupo significa setgid más ejecución. Una t minúscula en la posición de los otros significa sticky bit más ejecución. Las mayúsculas S y T indican que el bit especial está activo pero la ejecución no, lo que normalmente deja el bit sin efecto en un archivo. Por ejemplo, 4755 es rwsr-xr-x y 1777 es rwxrwxrwt.
¿Para qué sirven setuid, setgid y el sticky bit?
Setuid hace que un programa se ejecute con los permisos del propietario del archivo y no del usuario que lo lanza, y así es como passwd puede actualizar la base de datos de contraseñas. Setgid hace lo mismo con el grupo y, en una carpeta, hace que los archivos nuevos hereden el grupo de la carpeta. El sticky bit en una carpeta significa que solo el propietario de un archivo, el propietario de la carpeta o root pueden borrarlo o renombrarlo, y por eso /tmp tiene 1777.
¿Por qué debería evitar chmod 777?
777 permite a cualquier cuenta de la máquina, incluido el servidor web y cualquier servicio comprometido, modificar o sustituir el archivo. En una carpeta además deja que cualquiera borre archivos ajenos. A menudo oculta el problema real, que suele ser un propietario o grupo incorrecto. Corrige la propiedad con chown y usa 755 o 775 para carpetas y 644 o 664 para archivos.
¿Cómo pongo permisos distintos a archivos y carpetas de forma recursiva?
chmod -R aplica un único modo a todo, así que los archivos recibirían ejecución igual que las carpetas. Usa find en su lugar: find ruta -type d -exec chmod 755 {} + para las carpetas y find ruta -type f -exec chmod 644 {} + para los archivos. El modo simbólico también tiene un atajo: chmod -R u=rwX,go=rX ruta, donde la X mayúscula solo añade ejecución a las carpetas y a los archivos que ya eran ejecutables.
¿Qué es el umask?
El umask es un conjunto de bits que se quitan de los permisos por defecto cuando un programa crea algo nuevo. Los archivos parten de 666 y las carpetas de 777, y se elimina cada bit del umask. Con el umask habitual 022, los archivos nuevos quedan en 644 y las carpetas nuevas en 755. Con 077 quedan en 600 y 700, de modo que solo tú puedes acceder. Ejecuta umask en una terminal para ver tu valor actual.
¿chmod 755 en una carpeta quita el bit setgid?
No con el chmod de GNU en Linux. En las carpetas conserva los bits setuid y setgid existentes cuando das un modo numérico, para que las carpetas compartidas no pierdan la herencia de grupo por accidente. Para quitarlos, usa el modo simbólico, como chmod g-s carpeta, o un modo numérico con un cero extra delante, como chmod 00755 carpeta. Otros sistemas pueden comportarse de otra forma, así que compruébalo después con ls -l.

Acerca de Calculadora chmod

Los números son octales: cada dígito es la suma de lectura (4), escritura (2) y ejecución (1) para una clase, así que 7 significa las tres, 6 lectura y escritura, 5 lectura y ejecución y 4 solo lectura. Un cuarto dígito delante guarda los bits especiales: 4 para setuid, 2 para setgid y 1 para el sticky bit. En la forma con letras aparecen en las posiciones de ejecución como s o t, y como S o T mayúsculas cuando el bit especial está activo sin el permiso de ejecución debajo. La calculadora entiende todos estos casos, y el panel de explicación cuenta en lenguaje sencillo qué pueden hacer realmente el propietario, el grupo y los demás. Cambia entre File y Directory, porque los mismos bits significan cosas distintas: en una carpeta, la lectura permite listar los nombres, la escritura crear y borrar archivos y la ejecución entrar en ella y llegar a los archivos de dentro.

Los ajustes habituales cubren los casos de cada día: 644 para archivos normales, 755 para scripts y carpetas, 600 y 700 para claves y carpetas privadas, 664 y 775 para trabajo en grupo, 400 para secretos de solo lectura y 1777 para carpetas temporales compartidas. La herramienta avisa cuando un modo es arriesgado, por ejemplo 777, carpetas con escritura para todos sin sticky bit o un programa setuid que otros pueden modificar. También hay una calculadora de umask: escribe un umask como 022 o 077 y mira los permisos que tendrán los archivos nuevos (a partir de 666) y las carpetas nuevas (a partir de 777). Todo se calcula en tu navegador.

El sticky bit servía para mantener programas en memoria

El sticky bit recibió su nombre en los primeros Unix, mucho antes de tener nada que ver con carpetas compartidas. En un archivo de programa, le pedía al sistema que conservara el código del programa en el área de swap al terminar, para que los comandos más usados, como el editor o la shell, arrancaran más rápido la vez siguiente. Se decía que el programa se quedaba pegado.

A medida que mejoraron la memoria virtual y las cachés de páginas, el truco dejó de ser útil y la mayoría de sistemas empezaron a ignorar el bit en los archivos. En los años 80 recibió una nueva función en las carpetas: solo el propietario de un archivo puede borrarlo o renombrarlo, aunque la carpeta tenga escritura para todos. Ese es el significado que tiene hoy, y la razón por la que cualquier sistema Linux o macOS muestra una t al final de drwxrwxrwt en /tmp.

Apoyar