umask (Español)

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. 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