Resumen de umask
El sistema operativo otorga permisos predeterminados al crear nuevos archivos o directorios. El valor de `umask` se 'excluye' de estos permisos predeterminados para determinar los permisos finales. `umask` es crucial desde el punto de vista de la seguridad, ya que, por ejemplo, puede evitar que archivos de configuración importantes se creen con permisos demasiado abiertos. El valor de `umask` puede configurarse de manera diferente para cada sesión de usuario y generalmente se establece en archivos de inicialización del shell como `.bashrc` o `.profile`.
Cómo funciona umask
`umask` es un valor de máscara que especifica los permisos que se 'excluirán', en lugar de los que se permitirán. Es decir, los permisos finales se determinan restando el valor de `umask` de los permisos máximos predeterminados.
Permisos máximos predeterminados
- Archivo: `666` (lectura y escritura, sin permisos de ejecución)
- Directorio: `777` (incluye permisos de lectura, escritura y ejecución)
Método de cálculo de umask
`umask` se expresa como un número octal de 3 dígitos (por ejemplo: `022`, `002`). Este valor se aplica en el orden de propietario (User), grupo (Group) y otros (Others). Cada dígito representa la suma de los bits de permiso (lectura=4, escritura=2, ejecución=1). Los permisos finales se calculan de la siguiente manera:
Tipo | Permisos máximos predeterminados | umask | Permisos finales |
---|---|---|---|
Archivo | 666 (rw-rw-rw-) | 022 (--w--w-) | 644 (rw-r--r--) |
Directorio | 777 (rwxrwxrwx) | 022 (--w--w-) | 755 (rwxr-xr-x) |
Valores umask comunes
En la mayoría de los sistemas, el valor predeterminado de `umask` es `0022` o `0002`. El `0` inicial corresponde a permisos especiales (sticky bit, SGID, SUID) y, por lo general, se establece en `0`.
Significado de valores umask comunes
- `umask 022`: Los archivos se crean con permisos `644`(rw-r--r--), y los directorios con permisos `755`(rwxr-xr-x). Esta es la configuración más común, que otorga todos los permisos al propietario y permisos de lectura y ejecución a los grupos y otros usuarios.
- `umask 002`: Los archivos se crean con permisos `664`(rw-rw-r--), y los directorios con permisos `775`(rwxrwxr-x). Esto permite a los usuarios del mismo grupo tener permisos de escritura, facilitando la colaboración dentro del grupo.
- `umask 077`: Los archivos se crean con permisos `600`(rw-------), y los directorios con permisos `700`(rwx------). Esta es una configuración de permisos muy estricta, donde nadie más que el propietario puede acceder. Es adecuada para archivos o directorios personales donde la seguridad es muy importante.
Opciones principales del comando umask
El comando `umask` se utiliza para verificar el valor actual o establecer un nuevo valor. Si se utiliza sin opciones, mostrará el valor actual de `umask`.
1. Verificar y establecer el valor de umask
Comando generado:
Combina los comandos.
Descripción:
`umask` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
A través de diversos ejemplos de uso del comando `umask`, aprenderás cómo verificar y establecer los permisos predeterminados de los archivos y directorios recién creados.
Verificar el valor actual de umask
umask
Verifica el valor de `umask` de la sesión de shell actual en forma octal (por ejemplo: `0022`).
Verificar el valor de umask en modo simbólico
umask -S
Verifica el valor de `umask` en forma de permisos permitidos como 'u=rwx,g=rx,o=rx' en lugar de en octal.
Establecer el valor de umask en 002
umask 002
Cambia `umask` para que los archivos recién creados tengan permisos `664`(rw-rw-r--) y los directorios permisos `775`(rwxrwxr-x). (Permite permisos de escritura a los usuarios del mismo grupo)
Establecer un valor estricto de umask en 077
umask 077
Cambia `umask` para que los archivos recién creados tengan permisos `600`(rw-------) y los directorios permisos `700`(rwx------). Nadie más que el propietario puede acceder.
Verificar permisos de creación de archivos/directorios después de cambiar umask
umask 002
touch test_file_002.txt
mkdir test_dir_002
ls -l test_file_002.txt test_dir_002
Después de establecer umask en `002`, crea nuevos archivos y directorios y verifica si se aplicaron los permisos cambiados con `ls -l`.