Umask: qué es y por qué es tan importante
Umask influye en los permisos predeterminados que reciben los archivos y directorios nuevos. Entender cómo funciona te permite administrar los permisos de forma adecuada y proteger la seguridad y privacidad de tus datos.
Introducción a umask y su función en los permisos predeterminados
El término «umask» significa «user file-creation mode mask», es decir, máscara del modo de creación de archivos del usuario. Es una configuración del sistema que define qué permisos se eliminan de los valores predeterminados al crear archivos y directorios. Umask determina qué permisos no se conceden automáticamente.
Cuando creas un archivo o directorio, el sistema parte de un conjunto de permisos predeterminados. Por lo general, incluye lectura (r), escritura (w) y ejecución (x) para el propietario, además de lectura y ejecución para el grupo y otros usuarios. El valor de umask elimina permisos de este conjunto para establecer los que recibirá el elemento nuevo.
Cómo afectan los valores de umask a los permisos
Los valores de umask se representan con números octales que indican los permisos que deben eliminarse. Cada dígito representa un conjunto de permisos para el propietario, el grupo y otros usuarios.
Los tres dígitos del valor de umask corresponden a los siguientes permisos:
1. Usuario (propietario): el primer dígito representa los permisos que se eliminan para el propietario del archivo o directorio.
2. Grupo: el segundo dígito representa los permisos que se eliminan para el grupo.
3. Otros: el tercer dígito representa los permisos que se eliminan para otros usuarios, es decir, quienes no son el propietario ni pertenecen al grupo.
Cada dígito del valor de umask se calcula restando de 7 los permisos deseados. El número 7 representa todos los permisos. Así funciona:
Si estableces un valor de umask de 022:
– El propietario (usuario) conservará todos los permisos (7).
– Al grupo y a otros usuarios se les quitará el permiso de escritura (2).
También puedes usar una calculadora de umask para obtener los valores exactos mediante un menú gráfico.
Al crear un archivo o directorio, los permisos predeterminados se ajustan según el valor de umask. En este ejemplo, los archivos nuevos tendrán permisos 644 (rw-r–r–) y los directorios nuevos tendrán permisos 755 (rwxr-xr-x).
Los usuarios suelen configurar umask en los archivos de perfil de su shell, como .bashrc, .bash_profile o .profile. También puedes establecer un valor para todo el sistema mediante los scripts de inicialización.
Configurar umask correctamente ayuda a mantener la seguridad y privacidad del sistema porque controla los permisos iniciales de los archivos y directorios nuevos. Un valor adecuado permite aplicar el nivel de acceso deseado desde el momento de su creación.
Notación octal
Notación octal: este método usa tres dígitos (0-7) para representar los permisos del propietario, el grupo y otros usuarios. Cada dígito corresponde a los permisos de lectura (4), escritura (2) y ejecución (1).
| Dígitos (0-7) | Permisos correspondientes |
| 0 | Sin permisos |
| 1 | Ejecución (1) |
| 2 | Escritura (2) |
| 3 | Escritura + ejecución (2+1) |
| 4 | Lectura (4) |
| 5 | Lectura + ejecución (4+1) |
| 6 | Lectura + escritura (4+2) |
| 7 | Lectura + escritura + ejecución (4+2+1) |
Cómo instalar umask
Normalmente no necesitas instalar la herramienta umask porque la mayoría de las distribuciones Linux ya la incluyen como un comando estándar del shell. Si no está disponible en tu servidor privado virtual (VPS), comprueba si se encuentra en tu gestor de paquetes e intenta instalarla con estos pasos:
Actualiza la información de los paquetes: antes de instalar software, actualiza la información del gestor de paquetes para trabajar con las versiones disponibles más recientes. Usa el comando correspondiente:
Para sistemas basados en Debian/Ubuntu:
sudo apt update
Para sistemas basados en Red Hat/CentOS:
sudo yum update
Comprueba la disponibilidad: verifica si la herramienta umask se encuentra en el repositorio de tu gestor de paquetes. Para comprobar si ya está instalada, ejecuta:
umask --help
Si umask está disponible, el sistema mostrará la sintaxis del comando. Si no lo está, aparecerá un error «command not found».
Instala umask si no está disponible: si no encuentras la herramienta umask o no está instalada, puedes intentar instalarla con tu gestor de paquetes:
Para sistemas basados en Debian/Ubuntu:
sudo apt install umask
Para sistemas basados en Red Hat/CentOS:
sudo yum install umask
Estos comandos te pedirán confirmar la instalación. Cuando aparezca el aviso, escribe Y o presiona ‘Enter’.
Cómo consultar el valor de umask
Consulta el valor actual de umask para saber con qué permisos predeterminados se crean los archivos y directorios. El comando umask te permite revisarlo directamente.
Cómo consultar el valor actual de umask
Abre la terminal y ejecuta el siguiente comando:
umask
El comando mostrará un valor en formato octal. Este valor representa los permisos que se eliminan de los predeterminados al crear archivos y directorios.
Los usuarios suelen configurar umask en el archivo de perfil de su shell, como .bashrc, .bash_profile o .profile, o mediante scripts de inicialización del sistema. Por eso, el valor puede variar entre usuarios del mismo sistema.
Cómo establecer un valor de umask
Un valor de umask personalizado te permite controlar los permisos predeterminados de los archivos y directorios nuevos de tu usuario o sesión. Puedes ajustarlo según tus requisitos de acceso. A continuación, aprenderás a establecerlo con ejemplos de comandos.
Cómo establecer un valor de umask para tu usuario o sesión
Para conservar el valor personalizado al iniciar cada sesión, modifica el archivo de configuración del perfil de tu shell, como .bashrc, .bash_profile o .profile. Sigue estos pasos:
1. Abre tu editor de texto preferido.
2. Edita el archivo de configuración del perfil de tu shell. Según el shell que uses, ejecuta uno de estos comandos:
Para Bash:
nano ~/.bashrc
Para Zsh:
nano ~/.zshrc
Si usas otro shell, consulta cuál es su archivo de configuración correspondiente.
3. Agrega la siguiente línea para establecer tu valor personalizado de umask:
umask new_umask_value
Sustituye new_umask_value por la representación octal del valor que quieras establecer. Por ejemplo, para usar un valor de umask de 0022, ejecuta:
umask 0022
4. Guarda los cambios y cierra el editor de texto.
5. Para aplicar el nuevo valor de umask a la sesión actual, cierra la sesión y vuelve a iniciarla o ejecuta este comando en la terminal:
source ~/.bashrc
(Sustituye ~/.bashrc por la ruta del archivo de configuración de tu shell si es necesario.)
Cómo proteger archivos confidenciales ajustando umask
Para proteger archivos confidenciales con umask, establece permisos restrictivos que permitan el acceso únicamente al propietario. Sigue estos pasos:
1. Abre el archivo de configuración del perfil de tu shell, como ~/.bashrc, ~/.zshrc o el equivalente, con un editor de texto:
nano ~/.bashrc
2. Agrega la siguiente línea para establecer un valor restrictivo, como 0077, en la sesión de tu usuario:
umask 0077
3. Guarda los cambios y cierra el editor de texto.
4. Para aplicar el nuevo valor de umask a la sesión actual, cierra la sesión y vuelve a iniciarla o ejecuta:
source ~/.bashrc
Con esta configuración, solo tú, como propietario, podrás acceder y modificar los archivos o directorios que crees. Los miembros del grupo y otros usuarios del mismo sistema no tendrán acceso a estos archivos confidenciales. Así agregas otra capa de protección para tus datos.
Usar umask de esta forma mantiene privados los archivos confidenciales y reduce el riesgo de acceso no autorizado o exposición accidental de datos.
Protección de permisos con umask
Umask controla los permisos predeterminados que reciben los archivos y directorios nuevos en un sistema. Al eliminar permisos específicos de la configuración inicial, limita el acceso desde el momento en que se crea cada elemento.
Los valores octales de umask te permiten definir los permisos iniciales de archivos y directorios. Puedes personalizarlos desde los archivos de configuración del perfil de tu shell para adaptarlos a los requisitos de acceso de cada usuario.
Un valor restrictivo como 0077 permite que solo el propietario acceda y modifique los archivos nuevos. Esta configuración reduce el riesgo de acceso no autorizado o de exposición accidental de información confidencial.
