¿Qué es umask?

umask (máscara de modo de creación de archivos de usuario) es una configuración de Linux y Unix que controla los permisos predeterminados asignados a archivos y directorios recién creados. En lugar de establecer permisos directamente, umask define qué bits de permiso deben ser eliminados de los valores predeterminados del sistema cuando se crea un nuevo archivo o directorio.

El sistema comienza con un permiso base de 666 (lectura y escritura para todos) para archivos y 777 (lectura, escritura y ejecución para todos) para directorios. Luego, umask se resta bit a bit de estos valores predeterminados usando una operación AND-NOT lógica, produciendo los permisos finales. Por ejemplo, con un umask de 022, los nuevos archivos terminan con 644 y los nuevos directorios con 755.

Cada dígito de umask corresponde a una clase de permiso: el primer dígito afecta al propietario, el segundo al grupo y el tercero a otros. Un dígito de 0 significa que no se enmascaran permisos, mientras que 7 elimina todos los permisos para esa clase.

Descripción de la herramienta

La Calculadora de umask de Linux convierte un valor de umask y un permiso base en los permisos efectivos resultantes en notación octal y simbólica. También genera el comando shell umask exacto, ayudando a administradores de sistemas, desarrolladores e ingenieros de DevOps a obtener una vista previa del resultado de cualquier umask antes de aplicarlo a un shell, script o configuración del sistema.

Ejemplos

Umask Base Octal resultante Simbólico
022 666 644 rw-r--r--
022 777 755 rwxr-xr-x
077 666 600 rw-------
027 777 750 rwxr-x---
002 666 664 rw-rw-r--

Características

  • Calcula permisos octales y simbólicos resultantes a partir de cualquier umask
  • Admite valores umask de 3 dígitos y 4 dígitos (con bit sticky/setuid inicial)
  • Preajustes de umask comunes (022, 027, 077, 002, 007, 000)
  • Preajustes de permisos base para archivos (666) y directorios (777)
  • Genera el comando shell umask listo para usar

Casos de uso

  • Endurecimiento de servidores: Obtén una vista previa de un umask más restrictivo como 077 antes de agregarlo a /etc/profile o a la configuración del shell de un usuario para asegurar que los nuevos archivos sean privados.
  • Entornos de desarrollo compartido: Verifica que 002 o 007 produzca archivos escribibles por el grupo para directorios de proyectos colaborativos.
  • Scripts de implementación: Confirma que el umask utilizado en pipelines de CI/CD o puntos de entrada de contenedores producirá los permisos de archivo esperados para registros de aplicaciones y activos cargados.

Cómo funciona

El permiso final se calcula para cada clase (propietario, grupo, otros) usando la fórmula:

final = base AND (NOT umask)

Cada dígito octal se procesa de forma independiente. Para un dígito de umask de 2 (binario 010) y un dígito base de 6 (binario 110), el resultado es 110 AND NOT 010 = 100, que equivale a 4 (solo lectura). El dígito inicial de un umask de 4 dígitos controla bits especiales (setuid, setgid, sticky) e se ignora en el cálculo de permisos estándar.

Consejos

  • Usa 666 como base para ver permisos de nuevos archivos y 777 para nuevos directorios.
  • Un umask de 000 significa que no se eliminan permisos — útil solo en entornos aislados y estrictamente controlados.
  • Para hacer el umask permanente, agrega el comando generado a ~/.bashrc, ~/.profile o /etc/profile dependiendo del alcance que desees.