La máscara de creación de archivos de un proceso, o umask, impide que se establezcan determinados bits de permisos cuando ese proceso crea un objeto del sistema de archivos. Es una máscara, no un modo predeterminado completo: la aplicación solicita primero un modo y el kernel elimina los bits prohibidos por la umask.
Permisos · Lección 4
Umask
Aprende cómo la umask de un proceso limita los bits de permisos solicitados para archivos y directorios nuevos.
Conceptualmente:
resulting mode = requested mode AND NOT umask
Las listas de control de acceso y el comportamiento de la aplicación pueden añadir más detalles, así que consulta el resultado cuando los permisos exactos sean importantes.
Consultar y establecer la umask
Ejecuta umask sin operandos para mostrar la máscara del shell actual, normalmente en formato octal:
$ umask
0022
Establécela para el shell actual y los procesos que este inicie posteriormente:
$ umask 027
Cada posición octal corresponde a propietario, grupo y otros. Un bit de máscara elimina el permiso solicitado correspondiente: 2 enmascara escritura, 4 enmascara lectura y 1 enmascara ejecución.
¿Qué cambia umask 027 en el shell actual?
Calcular los modos de archivos y directorios nuevos
Muchos programas normales solicitan 0666 para archivos normales nuevos, porque crear archivos ejecutables de forma predeterminada sería inseguro. Suelen solicitar 0777 para directorios nuevos, donde el permiso de ejecución es necesario para atravesarlos.
Con la umask 0022:
regular file: 0666 masked by 0022 -> 0644 (rw-r--r--)
directory: 0777 masked by 0022 -> 0755 (rwxr-xr-x)
La umask solo elimina bits solicitados. No puede añadir permiso de ejecución cuando una aplicación no lo ha solicitado. Una aplicación también puede solicitar un modo inicial más restrictivo, lo que produce un resultado más restrictivo.
Si un programa solicita el modo 0666 para un archivo normal y la umask es 0022, ¿qué modo resulta?
Si un programa solicita 0777 para un directorio y la umask es 0027, ¿qué modo resulta?
Ámbito y persistencia
Cambiar la umask en un shell no modifica su proceso padre ni otras sesiones. El valor se aplica a las creaciones futuras de ese shell y sus descendientes; los archivos existentes conservan sus modos.
Para hacer persistente un valor preferido, configúralo en el inicio de sesión, shell, PAM, gestor de servicios o aplicación apropiado para tu entorno. La ubicación correcta varía y los servicios pueden establecer su propia umask. No des por hecho que editar un archivo de un shell interactivo controla todos los procesos del sistema.
¿Qué le ocurre a un archivo existente cuando estableces una umask nueva?
Para practicar, crea archivos y directorios con distintas máscaras en un entorno aislado y compara sus modos mediante ls -ld. El laboratorio Usuarios, grupos y permisos de archivos en Linux ofrece un espacio adecuado.
Lección completada
Has completado Umask
Ahora puedes predecir cómo una umask limita los permisos recién solicitados.
Consulta o establece la máscara del shell actual con
umask.Elimina los bits enmascarados del modo solicitado por una aplicación.
Distingue las solicitudes habituales
0666para archivos y0777para directorios.Trata el ámbito y la persistencia de la umask como específicos del proceso y el entorno.
Guarda tu progreso
Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.
Crear una cuenta gratuita