GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué es umask en Linux?

UMASK en los sistemas Linux o Unix se conoce como máscara de usuario o también se denomina máscara de creación de archivos de usuario. Este es un permiso base o un permiso predeterminado cuando se crea un nuevo archivo o carpeta en la máquina Linux.

Es utilizado por múltiples comandos en Linux como mkdir, touch, tee y otros comandos que crean archivos y directorios. Se involucra en todos y cada uno de los pasos cuando se crea un nuevo archivo o directorio.

Permisos de archivo:

Antes de continuar con la inmersión profunda y comprender umask, primero entendamos los permisos de archivo en resumen.

Linux es conocido por su seguridad. Cada archivo o directorio en Linux tiene un conjunto específico de permisos y propiedades. Echemos un vistazo a la clase de usuario a continuación.

Cada archivo en Linux tendrá debajo de tres clases de usuarios asociadas.

  1. Usuario: un usuario propietario del archivo:de forma predeterminada, indica quién creó el archivo a menos que lo cambie.
  2. Grupo:indica que las personas del grupo tendrán permisos asignados al archivo.
  3. Otro:esto restringe a los otros usuarios que no son el propietario o están en el grupo asignado.

Hay tres tipos de acceso a archivos para cada clase de usuario mencionada anteriormente.

  1. r - permiso de lectura - la capacidad de leer el contenido del archivo
  2. w - permiso de escritura - la capacidad de cambiar el contenido del archivo
  3. x - permiso de ejecución - la capacidad de ejecutar el archivo como un programa

El concepto anterior le dice quién puede leer el contenido del archivo, modificar el contenido del archivo o ejecutar el programa.

Permisos de visualización - Modo simbólico:

Echemos un vistazo a la propiedad del archivo a continuación. Puede obtener la información en su máquina Linux escribiendo el comando ls -l.

El primer carácter de la imagen de arriba muestra el tipo de archivo. Podría haber diferentes tipos de archivos en Linux como se muestra a continuación.

Los siguientes nueve símbolos se dividen en tres partes como se muestra a continuación.

-   

Indica el archivo regular simple con diferentes extensiones como .txt, .json, .sh, .py, .rb, etc.

d

Indica directorio/carpeta

l

Indica un enlace simbólico o enlace simbólico o enlace suave

c

Indica archivo de dispositivo de caracteres

segundo

Indica archivo de dispositivo de bloque

Permisos de visualización - Modo numérico:

Existe una forma adicional de representar los permisos mediante números que se denomina Modo numérico.

Veamos el cuadro de permisos de archivos numéricos a continuación.

rwx

El archivo propietario puede leer el contenido, modificar el contenido y ejecutar el archivo como un programa

r-x

Miembros del grupo Los "usuarios" pueden leer el contenido y ejecutar el archivo como un programa, pero no pueden modificar el contenido del archivo

r-x

El que no es el propietario tampoco es miembro del grupo, es decir, otro , también puede leer el contenido del archivo y ejecutar el archivo como un programa pero no puede modificar el contenido del archivo

Si hago referencia a este cuadro de permisos numéricos y lo aplico en el mismo directorio mencionado en la imagen de arriba, el permiso se verá como a continuación.

  0

---

Sin permiso

1

--x

Solo permiso de ejecución

2

-w-

Solo permiso de escritura

3

-wx

Permiso de escritura y ejecución

4

r--

Solo permiso de lectura

5

r-x

Permiso de lectura y ejecución

6

rw-

Permiso de lectura y escritura

7

rwx

Permiso de lectura, escritura y ejecución


Por lo tanto, el permiso numérico del directorio testdir es 755. 

Comprensión de UMASK:

Vamos a crear un nuevo archivo y un nuevo directorio ejecutando el siguiente comando.

$ touch testfile
$ mkdir testdir

Veamos los permisos de testfile y testdir ejecutando el comando ls -l.

$ ls -l

Output:
drwxr-xr-x  2 niteshb users    4096 Mar 21 22:43 testdir
-rw-r--r--  1 niteshb users       0 Mar 21 22:43 testfile

¿Te diste cuenta de los permisos? Son diferentes, ¿verdad? Esto se debe al valor predeterminado de umask que se establece en la máquina Linux.

De forma predeterminada, en la máquina Linux, el permiso de creación predeterminado para un archivo es 666, que otorga permiso de lectura y escritura al propietario, grupo y otros, y 777 para un directorio, lo que significa permiso de lectura, escritura y ejecución al propietario, grupo y otros. otros.

Como sabemos, los directorios no pueden ser ejecutables. Entonces, ¿por qué el directorio necesita un permiso de ejecución? Bueno, el permiso de ejecución del directorio es para permitir el acceso a los contenidos del directorio. Si usamos el comando chmod, cambiamos el permiso del directorio a 666 e intentamos ingresar al directorio mediante el comando cd, obtendrá un error de permiso denegado.

En la mayoría de las distribuciones de Linux, el valor predeterminado para todo el sistema se establece en pam_umask.so o en el archivo /etc/profile. Al agregar el valor en el archivo ~/.bashrc en el directorio de inicio del usuario, podemos hacer un valor de umask específico para el usuario.

Para verificar el valor de umask, ejecute el comando umask.

$umask

Salida:

0022

Podemos ignorar el primer 0 de los cuatro números anteriores por ahora. Es una parte del permiso avanzado en Linux. Lo que puede evitar la modificación del archivo incluso si tiene permiso de escritura o podemos evitar eliminar un archivo incluso si es el usuario raíz. En este blog, solo nos vamos a concentrar en los otros tres números.

Para cambiar el valor de umask de la sesión actual, ejecute el siguiente comando seguido del valor deseado.

$umask 0044

Cómo obtienen sus permisos los archivos y directorios:

El valor asociado con umask NO es el permiso que obtiene para sus archivos y directorios.

Hay un cálculo muy simple. Como mencionamos anteriormente, el valor predeterminado para un archivo es 666 y para un directorio, es 777. Para calcular los bits de permiso para nuevos archivos o directorios, reste el valor de umask del valor predeterminado.

Por ejemplo, calculemos cómo afectará un nuevo permiso de archivo o directorio debido a umask.

  • Archivos:666 - 022 =644. Según el permiso, el propietario puede leer y ejecutar el archivo. Los grupos y otros pueden leer el archivo.
  • Directorio:777 - 022 =755. Esto significa que el propietario tendrá todos los permisos de lectura, escritura y cd en el directorio. El grupo y otros pueden leer y enumerar el contenido del directorio y cd al directorio.

También puede ver el valor de umask en forma numérica ejecutando el siguiente comando.

$umask

Salida:

u=rwx,g=rx,o=rx

A diferencia de la notación numérica, el valor de la notación simbólica contiene los bits de permiso que se establecerán en los archivos y directorios recién creados.

Configuración del valor de la máscara:

La máscara de creación de archivos se puede establecer mediante notación octal o simbólica. Para hacer que los cambios sean permanentes, establezca el nuevo valor de umask en un archivo de configuración global como el archivo /etc/profile que afectará a todos los usuarios o en los archivos de configuración de shell de un usuario como ~/.profile, ~/.bashrc o ~/.zshrc que afectará únicamente al usuario. Los archivos de usuario tienen prioridad sobre los archivos globales.

Antes de realizar cambios en la umask valor asegúrese de que el nuevo valor no represente un riesgo potencial para la seguridad. Valores menos restrictivos que 022 debe usarse con mucha precaución. Por ejemplo umask 000 significa que cualquiera tendrá permiso de lectura, escritura y ejecución para todos los archivos recién creados.

Digamos que queremos establecer permisos más restrictivos para los archivos y directorios recién creados para que otros no puedan cd a los directorios y leer archivos. Los permisos que queremos son 750 para directorios y 640 para archivos.

Para calcular la umask valor simplemente reste los permisos deseados de los predeterminados:

Valor de máscara U:777-750 = 027

La umask deseada el valor representado en notación numérica es 027 .

Para establecer permanentemente el nuevo valor en todo el sistema, abra /etc/profile archivo con su editor de texto y cambie o agregue la siguiente línea al principio del archivo:

umask 0027

Para que los cambios surtan efecto, ejecute el siguiente comando fuente o cierre sesión e inicie sesión:

$source /etc/profile

Para verificar la nueva configuración, crearemos un nuevo archivo y directorio usando los siguientes comandos.

$mkdir newtestdir
$touch newtestfile

Si verifica los permisos con el comando ls, notará que el nuevo archivo tiene 640 y el nuevo directorio 750 permisos, como queríamos:

drwxr-xr--  2 niteshb  users    4096 Mar 21 22:43 newtestdir
-rw-r-----  1 niteshb  users       0 Mar 21 22:43 newtestfile

Otra forma de establecer la máscara de creación de archivos es mediante la notación simbólica. Por ejemplo umask u=rwx,g=rx,o= es lo mismo que umask 027 .

Conclusión:

En esta guía, hemos explicado los permisos de Linux y cómo usar el umask Comando para configurar los bits de permisos para archivos o directorios recién creados.

Para obtener más información, escriba el siguiente comando en su terminal.

$man umask

Linux
  1. ¿Qué es Umask en Linux?

  2. ¿Qué es el número de inodo en Linux?

  3. Qué es NFS y cómo instalarlo en Linux

  4. ¿Qué es umask en UNIX/Linux?

  5. ¿Qué es JingOS Linux?

Comando Umask en Linux

¿Qué es el sistema de archivos de Linux? Guía fácil

¿Qué son los inodos en Linux?

¿Qué es el archivo .bashrc en Linux?

¿Qué es el archivo /etc/passwd en Linux?

¿Qué es un archivo .sh?

    rwx

    4+2+1

    7

    r-x

    4+0+1

    5

    r-x

    4+0+1

    5