Qué es Umask y cómo usarlo de manera efectiva

¿Qué es Umask?

Umask, o el modo de creación de archivos del usuario, es un comando de Linux que se usa para asignar los conjuntos de permisos de archivo predeterminados para 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 permiso correspondiente para los archivos recién creados. Los bits de la máscara se pueden cambiar invocando el comando umask.

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

  • La máscara del modo de creación de archivos de usuario que se utiliza para configurar los permisos predeterminados para archivos y directorios recién creados.
  • El comando “umask” que se utiliza para establecer el valor de umask

Como probablemente ya sepa, todos los sistemas operativos basados ​​en Unix tienen un conjunto de propiedades que se utilizan para definir quién puede leer, escribir o ejecutar archivos o directorios específicos. Hay tres categorías denominadas “clases de permisos” a las que se aplican estos permisos, y se indican a continuación.

  • Usuario: El Usuario, por defecto, es el propietario o creador de un archivo o carpeta. La propiedad del nuevo archivo es predeterminada para este usuario.
  • Grupo: un grupo es un conjunto de usuarios que comparten el mismo nivel de acceso o permisos a un archivo o carpeta.
  • Otro: El grupo Otro 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 en Otro, otorga acceso de nivel de permisos a cualquier persona que acceda al archivo o carpeta.

Entonces, ¿qué sucede cuando un usuario crea nuevos archivos y directorios? El sistema asigna automáticamente los siguientes permisos a un archivo si usa el comando táctil.

                      
                        [[email protected] ~]# touch test.txt
[[email protected] ~]# stat test.txt
  File: test.txt
  Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd03h/64771d Inode: 654750 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-04-21 12:53:25.612051178 -0400
Modify: 2020-04-21 12:53:25.612051178 -0400
Change: 2020-04-21 12:53:25.612051178 -0400
 Birth: -
                      
                    

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

                      
                        [[email protected] ~]# mkdir test
[[email protected] ~]# stat test
  File: test
  Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd03h/64771d Inode: 654751 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-04-21 12:54:25.172601585 -0400
Modify: 2020-04-21 12:54:25.172601585 -0400
Change: 2020-04-21 12:54:25.172601585 -0400
 Birth: -
[[email protected] ~]#
                      
                    

La sintaxis del comando Umask

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

                      
                        umask [-p] [-S] [mode]
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, usamos el comando umask. Ejecutar el comando umask por sí solo proporciona los permisos predeterminados que se asignan cuando se crea un archivo o una carpeta.

                      
                        [[email protected] ~]# umask
0022
[[email protected] ~]#
                      
                    

Para cambiar estos valores, usaremos el siguiente comando.

                      
                        [[email protected] ~]# umask ###
[[email protected] ~]# umask 022
                      
                    

Los símbolos ### en el primer comando se usan 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 escribe
1 ejecutar
Leer Escribe 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 0 1 5 receta
4 2 0 6 rw
4 2 1 7 rwx

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

                      
                        [[email protected] ~]# ls
drwxr-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’ ‘rx’ ‘r-x’.
Los permisos establecidos para el archivo test.txt son 644 o ‘rw -‘ ‘r – -‘ ‘r – -‘.
Un guión significa un valor 0.

Encabezados simbólicos

                      
                        --- no permission
--x execute
-w- write
-wx write and execute
r-- read
r-x read and execute
rw- read and write
rwx read, write and execute
                      
                    

Encabezados numéricos

                      
                        0 --- no permission
1 --x execute
2 -w- write
3 -wx write and execute
4 r-- read
5 r-x read and execute
6 rw- read and write
7 rwx read, write and execute
                      
                    

Cómo funciona Umask

los máscara El comando enmascara los niveles de permiso calificándolos con un cierto valor. Para explicar más cómo se aplica el valor de umask, lo ilustraremos con un example. Digamos que queremos establecer los permisos predeterminados para todos los archivos o carpetas nuevos en 644 y 755. Entonces usaríamos el siguiente comando.

                      
                        [[email protected] ~]# umask 022
                      
                    

El permiso número “2” (permiso de escritura) se “filtrará” de los permisos predeterminados del sistema de 666 y 777 (de ahí el nombre “máscara”). A partir de ahora, el sistema asignará los permisos predeterminados de 644 y 755 en nuevos archivos y directorios. En pocas palabras, para calcular los bits de permiso para un nuevo archivo o directorio, simplemente restamos el valor de umask del valor predeterminado, así.

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

valor octal : permiso

  • 0 : leer, escribir y ejecutar
  • 1 : Lee y escribe
  • 2 : leer y ejecutar
  • 3 : solo lectura
  • 4 : escribir y ejecutar
  • 5 : escribir solamente
  • 6 : solo ejecutar
  • 7 : no permisos

Podemos usar la información anterior para calcular los permisos de nuestros archivos. Para examplesi nuestro umask se establece en 077, el permiso se puede calcular de la siguiente manera:

Poco Dirigido a permiso de archivo
0 Dueño leer, escribir y ejecutar
7 Grupo no permisos
7 Mundo no permisos

0 : leer, escribir y ejecutar
7 : no permisos
7 : no permisos

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

Ubicación 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 predeterminadas de todo el sistema
  • /etc/bash.bashrc: aquí es donde se almacenan los archivos de configuración de shell predeterminados

Símbolos de máscara

Como se indica en la página de manual de umask anterior, podemos usar símbolos específicos para especificar los valores de permiso que queremos establecer. Para obtener una vista previa del valor de umask establecido actualmente en símbolos, usamos el siguiente comando:

                      
                        umask -S
                      
                    

Para cambiarlo, podemos usar el comando en el que las letras “u”, “g” y “o” representan al usuario, grupo y otro mundo, como se muestra a continuación.

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

Cuando configuramos los permisos de esta manera, complementamos cada marcador de posición “$” con los símbolos de permiso deseados. El igual” = El signo ” no es el único operador a nuestra disposición cuando configuramos umask con valores simbólicos. Podemos usar más “ + ” y menos “ ” operadores también.

  • El símbolo = permite habilitar permisos, prohibiendo 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: el uso de 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 usar 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 comprendemos mejor la función de la máscara de creación del modo de archivo de usuario, podemos darle un buen uso. No solo nos ahorra un tiempo precioso y mejora la seguridad, sino que también nos brinda mejores capacidades de administración de permisos.

¡Empiece hoy!

¿Todavía tiene preguntas sobre cómo utilizar umask? Llámanos al 800.580.4985 o abre una chat ¡o tiquete con nosotros para hablar con uno de nuestro equipo de soluciones bien informado o un asesor de hospedaje experimentado hoy!

Related Posts