ToolsOps

Permisos

Calculadora umask — permisos por defecto en Linux

Introduce un valor de umask (022, 077, 0022…) y la calculadora aplica las fórmulas 666 & ~umask para archivos y 777 & ~umask para directorios. Muestra el resultado en octal y simbólico, distingue archivo y directorio, y devuelve una recomendación cualitativa según el preset elegido. Todo se ejecuta en tu navegador.

Umask

Acepta 3 dígitos (022, 077) o 4 con leading-zero (0022). Solo dígitos octales: 0-7.

Presets habituales

Umask normalizada: 022

Permisos efectivos para archivos

Octal
644
Simbólico
rw-r--r--

Permisos efectivos para directorios

Octal
755
Simbólico
rwxr-xr-x

Tabla de bits

AudienciaDefaultUmask bloqueaResultado
Propietariofile: rw-
dir: rwx
---file: rw-
dir: rwx
Grupofile: rw-
dir: rwx
-w-file: r--
dir: r-x
Otrosfile: rw-
dir: rwx
-w-file: r--
dir: r-x

Recomendación: Default razonable

Archivos 644 y directorios 755. Es el valor por defecto en la mayoría de distros Linux para usuarios normales: el propietario controla, grupo y otros solo leen (y ejecutan directorios). Buen punto de partida.

Cómo funciona umask

umask es una máscara de bits que se aplica a los permisos por defecto al crear cualquier archivo o directorio nuevo. La regla central es: un bit a 1 en la umask BLOQUEA ese permiso en el resultado. Nunca añade permisos, solo los quita.

La calculadora aplica la fórmula que usa el kernel: 666 & ~umask para archivos, 777 & ~umask para directorios. La diferencia entre las dos bases (666 vs 777) explica por qué con la misma umask 022 obtienes 644 en archivos pero 755 en directorios.

Resultados de umask para los presets más comunes.
UmaskArchivoDirectorioCaso típico
000666 (rw-rw-rw-)777 (rwxrwxrwx)Sin máscara — solo aislamiento total
002664 (rw-rw-r--)775 (rwxrwxr-x)Colaboración de grupo
022644 (rw-r--r--)755 (rwxr-xr-x)Default habitual
027640 (rw-r-----)750 (rwxr-x---)Servidores con varios usuarios
077600 (rw-------)700 (rwx------)Privado del usuario, ~/.ssh
777000 (---------)000 (---------)Bloquea todo — didáctico, no usar

Fórmula 666 & ~umask (archivos)

Los archivos normales parten de un default de 666 (rw-rw-rw-). El bit de ejecución NO se añade automáticamente para archivos (sí para directorios). El kernel aplica la operación AND con la inversa de la umask:

  • 022 → 666 & ~022 = 666 & 755 = 644 (rw-r--r--).
  • 027 → 666 & 750 = 640 (rw-r-----).
  • 077 → 666 & 700 = 600 (rw-------).
  • 002 → 666 & 775 = 664 (rw-rw-r--).

Fórmula 777 & ~umask (directorios)

Los directorios parten de 777 porque sin el bit de ejecución no se puede entrar en ellos. Para una umask 022:

  • 022 → 777 & ~022 = 777 & 755 = 755 (rwxr-xr-x).
  • 027 → 777 & 750 = 750 (rwxr-x---).
  • 077 → 777 & 700 = 700 (rwx------).
  • 002 → 777 & 775 = 775 (rwxrwxr-x).

chmod vs umask

Es la confusión más habitual. Una regla mental que funciona:

  • chmod cambia permisos de archivos y directorios YA existentes. Operación retroactiva.
  • umask define qué permisos tendrán los archivos y directorios FUTUROS, solo dentro del proceso que la hereda.
  • umask no añade permisos: si pones umask 000, los archivos nuevos quedan 666 (el default), no 777.
  • Para política a largo plazo conviene combinar ambas: umask define los defaults y chmod corrige las excepciones puntuales.

Riesgos por valor de umask

Cada extremo tiene problemas distintos:

  • umask 000: sin máscara — los archivos nuevos quedan world-writable. Casi nunca correcto en producción.
  • umask 777: bloquea todo. Los archivos y directorios nuevos quedan en 000, ni siquiera el propietario puede usarlos. Útil para demostrar el comportamiento, no como configuración real.
  • umask 002 en grupos no controlados: cualquier miembro del grupo puede escribir. Solo seguro si el grupo está restringido a usuarios de confianza.
  • umask demasiado alta (077) para procesos que esperan datos compartidos: rompe colaboración. Hay que conocer el flujo de datos del servicio.

Preguntas frecuentes

¿Qué es umask?
umask (user file-creation mode mask) es una máscara de bits que el kernel aplica al crear cada archivo o directorio nuevo. Cuando un bit está a 1 en la umask, ese bit queda BLOQUEADO en el resultado: nunca añade permisos, solo los quita. Cada proceso hereda la umask de su shell, y el shell de su sesión; cambiarla con el comando `umask 022` solo afecta a los archivos creados desde ese punto en adelante.
¿Por qué umask 022 crea archivos 644 y directorios 755?
Los archivos parten de un default de 666 (rw-rw-rw-) y los directorios de 777 (rwxrwxrwx). El kernel aplica `default AND NOT umask`. Para 022: 666 & ~022 = 666 & 755 = 644 (rw-r--r--); 777 & ~022 = 777 & 755 = 755 (rwxr-xr-x). El default de archivos NO incluye el bit de ejecución, así que aunque la umask lo permitiera, los archivos normales nunca obtienen `x` automáticamente.
¿Cuál es una umask segura para servidores?
022 es el default razonable en la mayoría de distros y suele estar bien. Para hosts con varios usuarios o servicios cuyos datos no deben filtrar entre cuentas, 027 es más estricta (otros sin acceso). Para procesos cuyos archivos no deben verlos ni siquiera otros miembros del grupo, 077. Lo importante es elegir un valor y aplicarlo de forma consistente (PAM, /etc/profile, unit de systemd con `UMask=`).
¿Qué diferencia hay entre chmod y umask?
chmod modifica los permisos de un archivo o directorio que YA existe. umask define los permisos que tendrán los archivos y directorios FUTUROS al crearse, dentro del proceso que hereda esa umask. Son operaciones distintas: para cambiar lo existente, chmod; para definir defaults, umask. Esta calculadora es solo para umask; para chmod existe otra herramienta hermana.
¿Umask cambia archivos existentes?
No. umask SOLO afecta a archivos y directorios creados a partir del momento en que se aplica, y solo dentro del proceso que la hereda. Si necesitas cambiar permisos retroactivamente, usa chmod (o `find ... -exec chmod ...`).
¿Qué significa umask 077?
Es la umask más restrictiva habitual. Bloquea todos los bits de grupo y de otros: los archivos nuevos quedan en 600 (rw-------) y los directorios en 700 (rwx------). Solo el propietario lee, escribe y entra. Es la que conviene para perfiles personales, ~/.ssh, repos privados y cuentas que no comparten datos.