Skip to content

03 umask_Permisos Predeterminados de Archivos

Alan edited this page Jun 13, 2026 · 1 revision

umask: Permisos Predeterminados de Archivos

Tabla de Contenidos

Qué es umask

umask es una utilidad usada para controlar el file-creation mode mask (máscara del modo de creación de archivos), el cual determina el file mode (permisos) predeterminado para los archivos nuevos.

Note

El comportamiento de esta utilidad está estandarizado por POSIX y se describe en el Manual de programador POSIX. Debido a que esta utilidad afecta al entorno de ejecución actual del shell, usualmente se implementa como un comando built-in (integrado) en los shells.

Definición del File Mode Predeterminado

En sistemas Unix y Unix-like (e.g., Linux), los permisos base para archivos nuevos son 666, y para directorios nuevos son 777. Estos valores, en conjunto con el file-creation mode mask, definen el file mode predeterminado para los archivos y directorios nuevos.

El file-creation mode mask es un número octal de 4 dígitos que define los permisos a remover de los permisos base, produciendo el file mode predeterminado para los archivos nuevos.

Por definición, el file mode predeterminado (R) se obtiene aplicando la operación AND bit a bit (bitwise conjunction) entre los permisos base (D) y el complemento del file-creation mode mask (M):

$$ R = D \ \mathbin{\And} \ (\sim M) $$

Cálculo del File Mode Predeterminado por Resta

Una manera más sencilla para obtener el file mode predeterminado (R) es restarle el mode mask a los permisos base (D):

$$ R = D - M $$

Important

Cuando la resta de dos dígitos dé como resultado un número negativo, lo interpretamos como si hubiera dado cero.

Ejemplos de Cálculo del File Mode Predeterminado

Ejemplo 1: Mode Mask 0022

Primero calculamos el file mode predeterminado para los nuevos archivos:

Cálculo por Definición     Cálculo por Resta
666  0b110_110_110  (D)    666 0b110_110_110   (D)
755  0b111_101_101  (¬M)   022 0b000_010_010   (M)
644  0b110_100_100  (R)    644 0b110_100_100   (R)

Ahora calculamos el file mode predeterminado para los nuevos directorios:

Cálculo por Definición     Cálculo por Resta
777  0b111_111_111  (D)    777 0b111_111_111  (D)
755  0b111_101_101  (¬M)   022 0b000_010_010  (M)
755  0b111_101_101  (R)    755 0b111_101_101  (R)

Ejemplo 2: Mode Mask 0027

Primero calculamos el file mode predeterminado para los nuevos archivos:

Cálculo por Definición      Cálculo por Resta
666  0b110_110_110   (D)    666 0b110_110_110  (D)
750  0b111_101_000   (¬M)   027 0b000_010_111  (M)
640  0b110_100_000   (R)    640 0b110_100_000  (R)

Ahora calculamos el file mode predeterminado para los nuevos directorios:

Cálculo por Definición      Cálculo por Resta
777  0b111_111_111   (D)    777 0b111_111_111  (D)
750  0b111_101_000   (¬M)   027 0b000_010_111  (M)
750  0b111_101_000   (R)    750 0b111_101_000  (R)

Ejemplo 3: Mode Mask 0077

Primero calculamos el file mode predeterminado para los nuevos archivos:

Cálculo por Definición      Cálculo por Resta
666  0b110_110_110   (D)    666 0b110_110_110  (D)
700  0b111_000_000   (¬M)   077 0b000_111_111  (M)
600  0b110_000_000   (R)    600 0b110_000_000  (R)

Ahora calculamos el file mode predeterminado para los nuevos directorios:

Cálculo por Definición      Cálculo por Resta
777  0b111_111_111   (D)    777 0b111_111_111  (D)
700  0b111_000_000   (¬M)   077 0b000_111_111  (M)
700  0b111_000_000   (R)    700 0b111_000_000  (R)

Mostrar el Valor Actual del Mode Mask

Para mostrar el mode mask actual, simplemente ejecuta el comando umask. El formato del output predeterminado depende de la implementación, pero usualmente es octal:

$ umask
0022

Para mostrar el mode mask actual en modo simbólico, se puede usar la opción -S (estandarizada por POSIX). Esta opción muestra el file mode resultante tomando 777 como permisos base (D):

$ umask -S
u=rwx,g=rx,o=rx

Establecer el Valor del Mode Mask

Establecer el Valor Actual del Mode Mask

Para establecer el mode mask actual, se puede utilizar el comando umask:

umask 027

Establecer el Valor Predeterminado del Mode Mask

A Nivel Sistema

El valor predeterminado del mode mask puede establecerse agregando el comando umask (e.g., umask 027) en archivos de configuración globales del shell, tales como /etc/profile o un archivo dentro de /etc/profile.d/ (e.g., /etc/profile.d/umask.sh). Para un shell específico, puede agregarse en su archivo de configuración global correspondiente (e.g., /etc/bash.bashrc).

La mayoría de las distribuciones de Linux establecen 022 como valor predeterminado del mode mask en /etc/login.defs:

UMASK        022

A Nivel Usuario

El valor predeterminado del mode mask para un usuario puede establecerse agregando el comando umask (e.g., umask 077) en el archivo .profile o, para un shell específico, en alguno de sus archivos de configuración correspondientes (e.g., .bashrc, .zshrc).

Recursos Recomendados

Referencias

Introducción a los Sistemas Operativos

Introducción a Linux

Licencias de Software

Archivos y Directorios

Introducción a la CLI

Manipulación de Archivos y Directorios

Documentación y Exploración de Comandos

Redirección

Búsqueda de Archivos y Texto

Editores de Texto de Terminal

Gestión de Usuarios y Grupos

Propiedad y Permisos

Herramientas Esenciales

Hardware

Apéndice

Clone this wiki locally