Umask
100%

Permisos · Lección 4

Umask

Aprende cómo la umask de un proceso limita los bits de permisos solicitados para archivos y directorios nuevos.

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.

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?

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 0666 para archivos y 0777 para 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
Siguiente Lección
Volver a Permisos