bitlvl
ES

Calculadora umask

Una umask quita bits de permiso a los archivos nuevos. Escribe una para ver el resultado, o marca los permisos que quieres que tengan los archivos y directorios nuevos.

Bits eliminados
r
w
x
Propietario
Grupo
Otros

Los resultados y mensajes de esta herramienta se muestran en inglés.

Cómo funciona umask

Cuando un programa crea un archivo pide un modo, casi siempre 666 (rw-rw-rw-) para archivos y 777 para directorios. El kernel borra entonces cada bit que esté activo en la umask del proceso. Con la habitual 022, se eliminan los bits de escritura de grupo y otros: los archivos quedan en 644, los directorios en 755. Con 077 desaparece todo para grupo y otros: 600 y 700. La máscara solo puede quitar permisos, nunca añadir; un archivo nunca obtiene ejecución de la umask, porque 666 nunca la tuvo.

La aritmética es mode & ~umask, un AND bit a bit con la máscara invertida, no una resta, así que umask 027 sobre 666 da 640, no 639.

Valores habituales

umaskArchivosDirectoriosSe usa para
022644755Por defecto en la mayoría de las distribuciones; otros pueden leer.
002664775Debian/Ubuntu para usuarios con grupo privado; los miembros del grupo pueden escribir.
077600700Privado por defecto: servidores, directorios personales con secretos.
027640750El grupo puede leer, otros nada; línea base de endurecimiento habitual (CIS).

Dónde se fija

  • Shell: umask la imprime, umask 027 la fija para la sesión; ponla en ~/.profile o /etc/profile. umask -S la muestra en forma simbólica.
  • Inicio de sesión: /etc/login.defs (UMASK) y pam_umask fijan el valor antes de que arranque la shell; /etc/profile en Debian lo deriva de si el usuario tiene grupo privado.
  • Servicios systemd: UMask=0077 en la sección [Service]; los servicios no leen los perfiles de shell.
  • cron: los trabajos se ejecutan con 022 independientemente de la configuración de shell del usuario; fíjala dentro del script.
  • Docker: el valor por defecto del contenedor es 022; cámbialo en el entrypoint o con umask en el comando.

Preguntas

¿Por qué mis archivos nuevos tienen 644 cuando quiero 664?

Tu umask es 022. Pon umask 002 (y asegúrate de que el grupo del directorio es el que quieres, con el bit setgid en el directorio para que los archivos nuevos lo hereden).

¿umask afecta a chmod?

No. chmod fija bits exactos. umask solo se aplica cuando se crea un archivo sin un modo explícito, que es casi siempre.

¿Por qué el directorio recibe ejecución y el archivo no?

Los directorios se crean con 777 antes de la máscara, los archivos con 666. Ejecución en un directorio significa «puede entrar»; los archivos necesitan chmod +x explícitamente.

¿Una umask de cuatro dígitos es distinta?

Un 0 inicial (0022) es solo notación octal. El primer dígito enmascararía setuid/setgid/sticky, que los procesos que crean archivos nunca piden, así que en la práctica no tiene efecto.