umask (Español) - ArchWiki

Jump to content

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

Artículos relacionados

- Permisos y atributos de archivo

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

- Manual del programador POSIX:
  - umask (también disponible como umask(1p))
  - chmod (descripción extendida) (también disponible como chmod(1p))
- 027 umask: un compromiso entre seguridad y simplicidad

Categories:

- Security (Español)
- File systems (Español)
- Commands (Español)