Qué es Umask y cómo usarlo eficazmente

Tiempo de lectura: 5 minutos

¿Qué es Umask?

Umask, o el modo de creación de archivos por parte del usuario, es un comando de Linux que se utiliza para asignar los conjuntos de permisos de archivo por defecto para las carpetas y archivos recién creados. El término máscara hace referencia a la agrupación de los bits de permiso, cada uno de los cuales define cómo se establece su correspondiente permiso para los archivos recién creados. Los bits de la máscara pueden cambiarse invocando el comando umask.

Al utilizar el término Umask, nos referimos a uno de los dos significados siguientes:

  • La máscara del modo de creación de archivos del usuario que se utiliza para configurar los permisos por defecto para los archivos y directorios recién creados
  • El comando «umask» que se utiliza para establecer el valor de umask
    • Como probablemente ya sepas, todos los sistemas operativos basados en Unix tienen un conjunto de propiedades que se utilizan para definir a quién se le permite leer, escribir o ejecutar archivos o directorios específicos. Hay tres categorías llamadas «clases de permisos» a las que se aplican estos permisos, y se señalan como sigue.

      • Usuario: El usuario, por defecto, es el propietario o creador de un archivo o carpeta. La propiedad del nuevo archivo recae por defecto en este usuario.
      • Grupo: Un Grupo es un conjunto de usuarios que comparten el mismo nivel de acceso o permisos a un archivo o carpeta.
      • Otros: El grupo Otros se define como cualquier usuario no incluido en las dos categorías anteriores. Estos usuarios no han creado un archivo o carpeta, ni pertenecen a un grupo de usuarios específico. Este grupo incluye a todos los que no están identificados como usuarios o como parte de un grupo de usuarios. Cuando establecemos el nivel de permiso de un archivo o carpeta como Otro, se da acceso de nivel de permiso a cualquiera que acceda al archivo o carpeta.
        • Entonces, ¿qué ocurre cuando un usuario crea nuevos archivos y directorios? El sistema asigna automáticamente los siguientes permisos a un archivo si se utiliza el comando touch.

          Si creamos un directorio, le asigna el siguiente conjunto de permisos,

          La sintaxis del comando Umask

          La entrada completa de la página man para umask es la siguiente.

umask The user file-creation mask is set to mode. If mode begins with a digit, it is interpreted as an octal number; otherwise it is interpreted as a symbolic mode mask similar to that accepted by chmod(1). If mode is omitted, the current value of the mask is printed. The -S option causes the mask to be printed in symbolic form; the default output is an octal number. If the -p option is supplied, and mode is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode was successfully changed or if no mode argument was supplied, and false otherwise.

Para ver el valor actual de umask, utilizamos el comando umask. La ejecución del comando umask por sí mismo proporciona los permisos por defecto que se asignan cuando se crea un archivo o carpeta.

# umask0022#

Para cambiar estos valores, utilizaremos el siguiente comando.

# umask #### umask 022

Los símbolos ### en el primer comando se utilizan en lugar de un número octal real.

A continuación, podemos ver los valores traducidos del octal y cómo se relacionan.

Número Permiso
4 leer
2 escribir
1 ejecutar
Leer Escribir Ejecutar Valor total Equivalente simbólico:
0 0 0 0
0 0 1 1 x
0 2 0 2 w
0 2 1 3 wx
4 0 0 4 r
4 1 5 rx
4 2 0 6 rw
4 2 1 7 rwx

Entonces, cuando ejecutamos un comando ls, los valores de los permisos octales o simbólicos se muestran al principio de la salida.

# lsdrwxr-xr-x 2 root root 4096 Apr 21 12:54 test/-rw-r--r-- 1 root root 0 Apr 21 12:53 test.txt

Los permisos establecidos para el directorio de prueba son 755 o ‘rwx’ ‘r-x’ ‘r-x’.
Los permisos establecidos para el archivo test.txt son 644 o ‘rw -‘ ‘r – -‘ ‘r – -‘.
Un guión significa un valor 0.

Titulares simbólicos

--- no permission--x execute-w- write-wx write and executer-- readr-x read and executerw- read and writerwx read, write and execute

Titulares numéricos

Cómo funciona Umask

El comando umask enmascara los niveles de permiso calificándolos con un determinado valor. Para explicar mejor cómo se aplica el valor umask, lo ilustraremos con un ejemplo. Supongamos que queremos establecer los permisos por defecto para todos los archivos o carpetas nuevos en 644 y 755. Entonces utilizaríamos el siguiente comando.

# umask 022

El permiso número «2» (permiso de escritura) será «filtrado» de los permisos por defecto del sistema de 666 y 777 (de ahí el nombre de «máscara».) A partir de ahora, el sistema asignará los permisos por defecto de 644 y 755 en los nuevos archivos y directorios. En pocas palabras, para calcular los bits de permiso de un nuevo archivo o directorio, sólo tenemos que restar el valor de umask del valor por defecto, así.

  • 666 – 022 = 644
  • 777 – 022 = 755

Valor por defecto : Permiso

  • 0 : leer, escribir y ejecutar
  • 1 : leer y escribir
  • 2 : lectura y ejecución
  • 3 : sólo lectura
  • 4 : escritura y ejecución
  • 5 : sólo escritura
  • 6 : sólo ejecución
  • 7 : sin permisos
  • Podemos utilizar la información anterior para calcular los permisos de nuestro archivo. Por ejemplo, si nuestro umask está configurado en 077, el permiso se puede calcular de la siguiente manera:

    Bit Targeted at Permiso de archivo
    Permiso de lectura Propietario Leer, escribir y ejecutar
    7 Grupo Sin permisos
    7 Mundo Sin permisos

    0 : lectura, escritura y ejecución
    7 : sin permisos
    7 : sin permisos

    Un umask de 000 hará que los directorios recién creados sean legibles, escribibles y ejecutables por todos (los permisos serán 777).

    Lugar de configuración de umask

    En la mayoría de las distribuciones de Linux, el valor de umask se puede encontrar y configurar en las siguientes ubicaciones:

    • /etc/profile – aquí es donde se almacenan las variables por defecto de todo el sistema
    • /etc/bash.bashrc – aquí es donde se almacenan los archivos de configuración del shell por defecto

    Símbolos de umask

    Como se indica en la página man de umask más arriba, podemos utilizar símbolos específicos para especificar los valores de permiso que queremos establecer. Para previsualizar el valor de umask actualmente establecido en símbolos, utilizamos el siguiente comando:

umask -S

Para cambiarlo, podemos utilizar el comando en el que las letras «u», «g» y «o» representan el usuario, el grupo y other o world, como se muestra a continuación.

umask u=$, g=$, o=$

Cuando configuremos los permisos de esta manera, complementaremos cada marcador de posición «$» con el símbolo o símbolos de permiso deseados. El signo igual «=» no es el único operador a nuestra disposición cuando configuramos umask con valores simbólicos. También podemos utilizar los operadores más «+» y menos «-«.

  • El símbolo = permite habilitar los permisos, prohibiendo los permisos no especificados
  • El símbolo + permite habilitar los permisos ignorando los permisos no especificados
  • El símbolo – prohíbe que se habiliten los permisos, ignorando los permisos no especificados
Nota:
Usar espacios después de las comas no funcionará, y bash mostrará el mensaje de error «operador de modo simbólico no válido».

Hay un símbolo adicional que se puede utilizar cuando queremos establecer el mismo permiso para todas las clases de permisos a la vez (usuario, grupo y otros), y es:

umask a=

Conclusión

Ahora que entendemos mejor la función de la máscara de creación del modo de archivo de usuario, podemos darle un buen uso. No sólo nos ahorra un tiempo precioso y mejora la seguridad, sino que también nos proporciona una mejor capacidad de gestión de permisos.

¡Comience hoy mismo!

¿Todavía tiene preguntas sobre cómo utilizar umask? Llámenos al 800.580.4985, o abra un chat o un ticket con nosotros para hablar con uno de nuestros expertos del Equipo de Soluciones o con un experimentado Asesor de Alojamiento hoy mismo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *