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 permisos644(rw-r--r--), y los directorios con permisos755(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 permisos664(rw-rw-r--), y los directorios con permisos775(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 permisos600(rw-------), y los directorios con permisos700(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`.