umask (Español)

From ArchWiki

Estado de la traducción: esta traducción de Umask fue revisada el 2021-02-12. Si existen cambios puede actualizarla o avisar al equipo de traducción.

La utilidad umask se utiliza para controlar la máscara del modo de creación de archivos, que determina el valor inicial de los bits de permisos para los archivos recién creados. El comportamiento de esta utilidad está estandarizado por POSIX y se describe en el Manual del programador POSIX. Debido a que umask afecta el entorno de ejecución actual del shell, generalmente se implementa como una orden integrada en el shell.

Significado de la máscara de modo

La máscara de modo contiene los bits de permiso que no deben establecerse en un archivo recién creado, por lo tanto, es la negación lógica de los bits de permiso establecidos en un archivo recién creado. Si algún bit de la máscara se establece en 1, el permiso correspondiente para el archivo recién creado se desactivará. Por lo tanto, la máscara actúa como un filtro para eliminar los bits de permiso y ayuda a configurar el acceso predeterminado a los archivos.

El valor resultante para los bits de permiso que se establecerán en un archivo recién creado se calcula utilizando la adjunción lógica bit a bit, que se puede expresar en notación lógica:

R: (D & (~M))

Es decir, los permisos resultantes R son el resultado de conjunción bit a bit de los permisos predeterminados D y la negación bit a bit de la máscara del modo de creación de archivos M.

Nota:
  • Linux no permite que se cree un archivo con permisos de ejecución, los permisos de creación predeterminados son 777 para directorios y solo 666 para archivos.
  • En Linux, solo se utilizan los bits de permiso de archivo de la máscara; véase umask(2). Los bits "suid", "sgid" y "pegajoso" de la máscara se ignoran.

Por ejemplo, supongamos que la máscara del modo de creación de archivos es 027. Aquí la representación bit a bit de cada dígito representa:

  • 0 representa los bits del permiso de usuario no establecido en un archivo recién creado
  • 2 representa los bits del permiso de grupo no establecido en un archivo recién creado
  • 7 representa los bits del permiso de otros no establecido en un archivo recién creado

Con la información proporcionada por la tabla a continuación, esto significa que para un archivo recién creado, por ejemplo, propiedad del usuario Usuario1 y del grupo Grupo1, Usuario1 tiene todas las permisos (valor octal 7) para el archivo recién creado, otros usuarios del grupo Grupo1 no tienen permisos de escritura (valor octal 5) y cualquier otro el usuario no tiene ningún permiso (valor octal 0) para el archivo recién creado. Entonces, con la máscara 027 tomada para este ejemplo, los archivos se crearán con permisos 750.

Octal Binary Significado
0 000 sin permisos
1 001 solo ejecución
2 010 solo escritura
3 011 escritura y ejecución
4 100 solo lectura
5 101 lectura y ejecución
6 110 lectura y escritura
7 111 lectura, escritura y ejecución

Mostrar el valor de la máscara actual

Para mostrar la máscara actual, simplemente invoque umask sin especificar ningún argumento. El estilo de salida predeterminado depende de la implementación, pero generalmente es octal:

$ umask
0027

Cuando se utiliza la opción -S, estandarizada por POSIX, la máscara se mostrará con notación simbólica. Sin embargo, el valor de notación simbólica siempre será el complemento lógico del valor octal, es decir, los bits de permiso que se establecerán en el archivo recién creado:

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

Establecer el valor de la máscara

Nota: Los valores de Umask se pueden establecer caso por caso. Por ejemplo, los usuarios de escritorio pueden considerar que los permisos restringidos en su carpeta de inicio son suficientes (useradd -m crea el directorio con el permiso 700 de forma predeterminada), ya que hacen que todos los archivos dentro de estos sean inaccesibles para otros usuarios. Si esto no es práctico (por ejemplo, cuando se utiliza el Servidor HTTP Apache) y los archivos públicos se almacenan entre los privados, entonces considere restringir la umask en su lugar.

Puede establecer el valor de umask mediante la orden umask. La cadena que especifica la máscara de modo sigue las mismas reglas sintácticas que el argumento de modo de chmod (véase Manual del programador POSIX para más detalles).

El valor de umask de todo el sistema se puede establecer en /etc/profile o en los archivos de configuración predeterminados del shell, por ejemplo /etc/bash.bashrc. La mayoría de las distribuciones Linux, incluido Arch, establecen un valor predeterminado 022 de umask (véase /etc/profile). También se puede configurar umask con pam_umask.so pero puede ser anulado por /etc/profile o similar.

Si necesita establecer un valor diferente, puede editar directamente dicho archivo, afectando así a todos los usuarios, o llamar a umask desde el archivo de configuración de usuario de su shell, por ejemplo ~/.bashrc para cambiar solo su umask, sin embargo, estos cambios solo tendrán efecto después del próximo inicio de sesión. Para cambiar su umask solo durante su sesión actual, simplemente ejecute umask y escriba el valor deseado. Por ejemplo, ejecutar umask 077 le dará permisos de lectura y escritura para archivos nuevos, y permisos de lectura, escritura y ejecución para carpetas nuevas.

Véase también