Cos’è Umask e come usarlo efficacemente

Tempo di lettura: 5 minuti

Che cos’è Umask?

Umask, o la modalità di creazione dei file per l’utente, è un comando Linux che viene usato per assegnare gli insiemi di permessi di default per cartelle e file appena creati. Il termine maschera si riferisce al raggruppamento dei bit di permesso, ognuno dei quali definisce come il suo permesso corrispondente è impostato per i file appena creati. I bit nella maschera possono essere cambiati invocando il comando umask.

Quando si usa il termine Umask, ci si riferisce ad uno dei seguenti due significati:

  • La maschera della modalità di creazione dei file utente che viene utilizzata per configurare i permessi di default per i file e le directory appena creati
  • Il comando “umask” che viene utilizzato per impostare il valore di umask

Come probabilmente già sapete, tutti i sistemi operativi basati su Unix hanno un insieme di proprietà che vengono utilizzate per definire chi è autorizzato a leggere, scrivere o eseguire specifici file o directory. Ci sono tre categorie chiamate “classi di permessi” a cui si applicano questi permessi, e sono annotati come segue.

  • Utente: L’Utente, per impostazione predefinita, è il proprietario o creatore di un file o di una cartella. La proprietà del nuovo file viene assegnata di default a questo utente.
  • Gruppo: Un gruppo è un insieme di utenti che condividono lo stesso livello di accesso o permessi per un file o una cartella.
  • Altro: Il gruppo Other è definito come qualsiasi utente non incluso nelle due categorie precedenti. Questi utenti non hanno creato un file o una cartella, né appartengono a uno specifico gruppo di utenti. Questo gruppo include chiunque non sia identificato come utente o come parte di un gruppo di utenti. Quando impostiamo il livello di autorizzazione di un file o di una cartella su Other, questo dà accesso al livello di autorizzazione a chiunque acceda al file o alla cartella.

Quindi, cosa succede quando un utente crea nuovi file e cartelle? Il sistema assegna automaticamente i seguenti permessi ad un file se si usa il comando touch.

Se creiamo una directory, le assegna i seguenti permessi,

La sintassi del comando Umask

La voce completa della manpage per umask è la seguente.

umask The user file-creation mask is set to mode. If mode begins with a digit, it is interpreted as an octal number; otherwise it is interpreted as a symbolic mode mask similar to that accepted by chmod(1). If mode is omitted, the current value of the mask is printed. The -S option causes the mask to be printed in symbolic form; the default output is an octal number. If the -p option is supplied, and mode is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode was successfully changed or if no mode argument was supplied, and false otherwise.

Per visualizzare il valore corrente di umask, si usa il comando umask. L’esecuzione del comando umask da solo fornisce i permessi di default che vengono assegnati quando un file o una cartella vengono creati.

# umask0022#

Per cambiare questi valori, useremo il seguente comando.

# umask #### umask 022

I simboli ### nel primo comando sono usati al posto di un vero numero ottale.

Di seguito, possiamo vedere i valori tradotti dell’ottale e come sono correlati.

Numero Permesso
4 leggi
2 scrivi
1 esegue
Leggi Scrivi Esegui Valore totale Equivalente simbolico:
0 0 0 0
0 0 1 1 x
0 2 0 2 w
0 2 1 3 wx
4 0 0 4 r
4 0 1 5 rx
4 2 0 6 rw
4 2 1 7 rwx

Quindi, quando eseguiamo un comando ls, i valori dei permessi ottali o simbolici sono mostrati all’inizio dell’output.

# lsdrwxr-xr-x 2 root root 4096 Apr 21 12:54 test/-rw-r--r-- 1 root root 0 Apr 21 12:53 test.txt

I permessi impostati per la directory di test sono 755 o ‘rwx’ ‘r-x’ ‘r-x’.
I permessi impostati per il file test.txt sono 644 o ‘rw -‘ ‘r – -‘ ‘r – -‘.
Un trattino indica un valore 0.

Titoli simbolici

--- no permission--x execute-w- write-wx write and executer-- readr-x read and executerw- read and writerwx read, write and execute

Titoli numerici

Come funziona Umask

Il comando umask maschera i livelli di permesso qualificandoli con un certo valore. Per spiegare meglio come viene applicato il valore umask, lo illustreremo con un esempio. Diciamo che vogliamo impostare i permessi di default per tutti i nuovi file o cartelle a 644 e 755. Useremmo quindi il seguente comando.

# umask 022

Il permesso numero “2” (permesso di scrittura) sarà “filtrato” dai permessi di default del sistema di 666 e 777 (da qui il nome “maschera”.) Da ora in poi, il sistema assegnerà i permessi di default di 644 e 755 ai nuovi file e cartelle. Semplicemente, per calcolare i bit di permesso per un nuovo file o directory, dobbiamo semplicemente sottrarre il valore di umask da quello di default, in questo modo.

  • 666 – 022 = 644
  • 777 – 022 = 755

Valore ottale : Permesso

  • 0 : lettura, scrittura ed esecuzione
  • 1 : lettura e scrittura
  • 2 : lettura ed esecuzione
  • 3 : solo lettura
  • 4 : scrittura ed esecuzione
  • 5 : solo scrittura
  • 6 : solo esecuzione
  • 7 : nessun permesso

Possiamo usare queste informazioni per calcolare i permessi dei nostri file. Per esempio, se la nostra umask è impostata su 077, il permesso può essere calcolato come segue:

Bit Targeted at Autorizzazione file
0 Proprietario Leggi, scrivere ed eseguire
7 Gruppo Nessun permesso
7 Mondo Nessun permesso

0 : leggere, scrivere ed eseguire
7 : nessun permesso
7 : nessun permesso

Una umask di 000 renderà le directory appena create leggibili, scrivibili ed eseguibili da tutti (i permessi saranno 777).

Posizione di configurazione della umask

Nella maggior parte delle distribuzioni Linux, il valore di umask può essere trovato e configurato nelle seguenti posizioni:

  • /etc/profile – questo è dove sono memorizzate le variabili predefinite a livello di sistema
  • /etc/bash.bashrc – qui è dove sono memorizzati i file di configurazione predefiniti della shell

Simboli di umask

Come notato nella pagina man di umask sopra, possiamo usare simboli specifici per specificare i valori di permesso che vogliamo impostare. Per vedere in anteprima il valore di umask attualmente impostato in simboli, usiamo il seguente comando:

umask -S

Per cambiarlo, possiamo usare il comando in cui le lettere “u,” “g,” e “o” rappresentano l’utente, il gruppo, e altro o mondo, come mostrato di seguito.

umask u=$, g=$, o=$

Quando si impostano i permessi in questo modo, completiamo ogni segnaposto “$” con il simbolo o i simboli del permesso desiderato. Il segno “=” uguale non è l’unico operatore a nostra disposizione quando impostiamo umask con valori simbolici. Possiamo usare anche gli operatori più “+” e meno “-“.

  • Il simbolo = permette di abilitare i permessi, vietando quelli non specificati
  • Il simbolo + permette di abilitare i permessi, ignorando i permessi non specificati
  • Il simbolo – proibisce di abilitare i permessi, ignorando i permessi non specificati
Nota:
L’utilizzo di spazi dopo le virgole non funzionerà, e bash mostrerà il messaggio di errore “operatore di modo simbolico non valido”.

C’è un simbolo aggiuntivo che può essere utilizzato quando vogliamo impostare lo stesso permesso per tutte le classi di permessi contemporaneamente (utente, gruppo e altro), ed è:

umask a=

Conclusione

Ora che abbiamo capito meglio la funzione della maschera di creazione della modalità file utente, possiamo farne buon uso. Non solo ci fa risparmiare tempo prezioso e migliora la sicurezza, ma ci fornisce anche migliori capacità di gestione dei permessi.

Inizia oggi!

Hai ancora domande su come utilizzare umask? Chiamaci al numero 800.580.4985, oppure apri una chat o un ticket con noi per parlare con uno dei nostri esperti del Solutions Team o con un esperto consulente di hosting oggi stesso!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *