Introducción
En los sistemas tipo Unix, cada archivo y directorio posee un conjunto de permisos que determinan quién puede leer, escribir o ejecutar el recurso. Cuando se crea un nuevo archivo, el kernel asigna unos permisos iniciales que luego se modifican mediante la máscara de creación de archivos, conocida como umask. Este comando permite definir de forma predeterminada qué bits de permiso se deben eliminar, garantizando que los nuevos recursos tengan el nivel de acceso deseado sin necesidad de intervenir manualmente después de su creación.
¿Qué es umask?
El término umask proviene de ‘user file-creation mode mask’. Se trata de un valor octal (o simbólico) que indica qué permisos deben ser denegados al momento de crear un archivo o directorio. El kernel parte de unos permisos base — normalmente 666 para archivos y 777 para directorios — y les resta la máscara umask. El resultado es el conjunto de permisos final que se aplicará al nuevo recurso.
Cómo funciona el cálculo
Para entender el proceso, imagine que el sistema parte de los permisos máximos:
- Archivos: 666 (rw- rw- rw-)
- Directorios: 777 (rwx rwx rwx)
Si su umask es 022, el cálculo sería:
- Archivo: 666 − 022 = 644 (rw- r– r–)
- Directorio: 777 − 022 = 755 (rwx r-x r-x)
Los bits que aparecen en la máscara se eliminan de los permisos base; cualquier bit que no esté en la máscara se conserva.
Valores comunes y ejemplos
Algunos valores de umask frecuentes y sus efectos:
- 002 → archivos 664, directorios 775 (ideal para entornos grupales donde todos los miembros del grupo pueden escribir)
- 022 → archivos 664, directorios 755 (valor predeterminado en muchas distribuciones)
- 077 → archivos 600, directorios 700 (máxima privacidad, solo el propietario puede leer, escribir o ejecutar)
- 000 → archivos 666, directorios 777 (sin restricciones, raramente recomendado por razones de seguridad)
Para ver el umask actual, basta con ejecutar umask en la terminal. Para cambiarlo temporalmente en la sesión actual, use umask 002. El nuevo valor afectará a todos los archivos y directorios creados hasta que se cierre la sesión o se vuelva a establecer otro umask.
Cambiar umask de forma permanente
Si desea que el umask se aplique cada vez que inicie una sesión, debe agregarlo a uno de los archivos de inicialización del shell. Por ejemplo, para Bash:
- Agregue la línea
umask 002al final de~/.bashrco~/.profile. - Después de guardar, recargue la configuración con
source ~/.bashrco abra una nueva terminal.
En sistemas que usan Zsh, el archivo correspondiente es ~/.zshrc. En entornos multi‑usuario, los administradores pueden definir umask a nivel global en /etc/profile o /etc/bash.bashrc, afectando a todos los usuarios que no sobrescriban el valor en su configuración personal.
Buenas prácticas y consejos
- Evalúe el entorno: en servidores compartidos, un umask de 002 o 007 ayuda a mantener la colaboración sin exponer datos a otros usuarios.
- En equipos de trabajo individual, un umask de 077 brinda mayor confidencialidad.
- Evite usar valores demasiado permisivos como 000; pueden dejar archivos legibles o escribibles por cualquiera, lo que representa un riesgo de seguridad.
- Recuerde que umask solo afecta a la creación de nuevos recursos; los permisos de archivos existentes no se modifican automáticamente.
- Si necesita aplicar permisos específicos después de la creación, combine umask con
chmodo use ACLs para un control más granular.
Dominar el comando umask le permite controlar de forma centralizada y predecible los permisos de los archivos y directorios que genera, mejorando tanto la organización como la seguridad de su sistema Linux.


