bitlvl
IT

Calcolatore umask

Una umask toglie bit di permesso ai nuovi file. Scrivine una per vedere il risultato, oppure spunta i permessi che vuoi che abbiano i nuovi file e directory.

Bit rimossi
r
w
x
Proprietario
Gruppo
Altri

I risultati e i messaggi di questo strumento sono mostrati in inglese.

Come funziona la umask

Quando un programma crea un file chiede un modo, quasi sempre 666 (rw-rw-rw-) per i file e 777 per le directory. Il kernel azzera poi ogni bit impostato nella umask del processo. Con la consueta 022, i bit di scrittura per gruppo e altri vengono rimossi: i file diventano 644, le directory 755. Con 077 va via tutto per gruppo e altri: 600 e 700. La maschera può solo togliere permessi, mai aggiungerne; un file non riceve mai l’esecuzione dalla umask, perché 666 non l’aveva.

L’aritmetica è modo & ~umask, un AND bit a bit con la maschera invertita, non una sottrazione, quindi umask 027 su 666 dà 640, non 639.

Valori comuni

umaskFileDirectoryUsata per
022644755Default sulla maggior parte delle distribuzioni; gli altri possono leggere.
002664775Debian/Ubuntu per utenti con gruppo privato; i membri del gruppo possono scrivere.
077600700Privato di default: server, home directory con segreti.
027640750Il gruppo può leggere, gli altri nulla; base comune di hardening (CIS).

Dove si imposta

  • Shell: umask la stampa, umask 027 la imposta per la sessione; mettila in ~/.profile o /etc/profile. umask -S la mostra in forma simbolica.
  • Login: /etc/login.defs (UMASK) e pam_umask impostano il valore prima che parta la shell; /etc/profile su Debian la ricava dal fatto che l’utente abbia un gruppo privato.
  • Servizi systemd: UMask=0077 nella sezione [Service]; i servizi non leggono i profili della shell.
  • cron: i job girano con 022 a prescindere dalle impostazioni della shell dell’utente; impostala dentro lo script.
  • Docker: il default del container è 022; cambialo nell’entrypoint o con umask nel comando.

Domande

Perché i miei nuovi file hanno 644 quando voglio 664?

La tua umask è 022. Imposta umask 002 (e assicurati che il gruppo della directory sia quello che vuoi, con il bit setgid sulla directory perché i nuovi file lo ereditino).

La umask influisce su chmod?

No. chmod imposta bit esatti. La umask si applica solo quando un file viene creato senza un modo esplicito, cioè quasi sempre.

Perché la directory riceve l’esecuzione e il file no?

Le directory vengono create con 777 prima della maschera, i file con 666. L’esecuzione su una directory significa «ci si può entrare»; i file hanno bisogno di chmod +x esplicitamente.

Una umask a quattro cifre è diversa?

Uno 0 iniziale (0022) è solo notazione ottale. La prima cifra maschererebbe setuid/setgid/sticky, che i processi che creano file non richiedono mai, quindi in pratica non ha effetto.