Introduzione
Quando si crea un nuovo file o directory, Linux applica il set di autorizzazioni predefinito. Il umask
comando ti consente di modificare queste autorizzazioni predefinite.
In questo tutorial imparerai cos'è umask, come funziona e come utilizzarlo per impostare i permessi di file e directory per singoli utenti o gruppi.
Prerequisiti
- Sistema basato su Linux (ad es. Ubuntu, CentOS, Debian)
- Un account utente con privilegi sudo
- Accesso al terminale di comando
Panoramica di Umask
Il termine umask si riferisce a due cose:
1. Il umask
di Linux comando. umask
(modalità di creazione file utente) è un comando Linux che ti consente di impostare autorizzazioni predefinite per file e cartelle appena creati.
2. Una "maschera" di autorizzazioni definita dall'utente. Un utente può scegliere come limitare le autorizzazioni utilizzando una maschera autorizzazioni . Una maschera di autorizzazione interagisce con le autorizzazioni di sistema predefinite e le modifica. Il umask
comando viene utilizzato per applicare questa maschera.
Come funziona Umask?
Il umask
Il comando funziona influendo sui permessi di file e cartelle di Linux predefiniti.
Esistono tre categorie di autorizzazioni per ogni file e cartella in Linux:
- Utente: Definisce le autorizzazioni per ogni singolo utente. Per impostazione predefinita, l'utente che crea un file o una cartella è impostato come proprietario.
- Gruppo: Definisce le autorizzazioni per un gruppo di utenti che condividono lo stesso livello di accesso.
- Altro: Definisce le autorizzazioni per chiunque non sia incluso nelle due categorie precedenti.
Utilizzare il comando seguente per rivedere le autorizzazioni per la cartella Inizio:
ls -l
Ogni riga dell'output inizia con una stringa di 10 caratteri che dettaglia le autorizzazioni. Scomponendo la voce evidenziata, questa stringa è composta dai seguenti elementi:
d
:indica il tipo di file (directory).rwx
:indica i permessi dell'utente (lettura, scrittura ed esecuzione).r-x
:indica i permessi del gruppo (lettura ed esecuzione).r-x
:Indica altri permessi (lettura ed esecuzione).
La sintassi del comando umask
Usando il umask
comando senza ulteriori opzioni di comando restituisce la maschera corrente come output:
Il umask
comando utilizza la seguente sintassi:
umask [-p] [-S] [mask]
Dove:
[mask]
:la nuova maschera di autorizzazione che stai applicando. Per impostazione predefinita, la maschera viene presentata come un valore numerico (ottale).[-S]
:Visualizza la maschera corrente come valore simbolico.[-p]
:Visualizza la maschera corrente insieme aumask
comando, consentendo di copiarlo e incollarlo come input futuro.
Valori umask simbolici e numerici
Come accennato nell'esempio sopra, umask può essere visualizzato come valore numerico (ottale) o simbolico.
Una maschera può avere i seguenti valori numerici e simbolici corrispondenti:
0 | --- | Nessun permesso |
1 | --x | Esegui |
2 | -w- | Scrivi |
3 | -wx | Scrivi ed esegui |
4 | r-- | Leggi |
5 | r-x | Leggi ed esegui |
6 | rw- | Leggi e scrivi |
7 | rwx | Leggi, scrivi ed esegui |
Come calcolare i valori di Umask
Linux utilizza la maschera predefinita e i valori di autorizzazione seguenti:
- I valori di autorizzazione predefiniti del sistema sono 777 (
rwxrwxrwx
) per le cartelle e 666 (rw-rw-rw-
) per i file. - La maschera predefinita per un utente non root è 002, modificando i permessi della cartella in 775 (
rwxrwxr-x
) e permessi di file su 664 (rw-rw-r--
). - La maschera predefinita per un utente root us 022, modificando i permessi della cartella in 755 (
rwxr-xr-x
) e permessi di file su 644 (rw-r--r--
).
Questo ci mostra che il valore dell'autorizzazione finale è il risultato della sottrazione di umask valore dal valore di autorizzazione predefinito (777 o 666).
Ad esempio, se desideri modificare il valore di autorizzazione della cartella da 777 (leggi, scrivi ed esegui per tutti) a 444 (leggi per tutti), devi applicare una umask valore di 333, poiché:
777 - 444 = 333
Come impostare e aggiornare il valore Umask predefinito
Utilizza la seguente sintassi per applicare un nuovo umask
valore:
umask [mask]
Dove:
[mask]
:la maschera che vuoi applicare, come valore simbolico o numerico.
Impostazione di un valore Umask simbolico
Imposta una nuova umask value utilizzando valori simbolici con la seguente sintassi:
umask u=#,g=#,o=#
Dove:
u
:indica i permessi dell'utente.g
:indica le autorizzazioni del gruppo.o
:indica altre autorizzazioni.#
:il valore dell'autorizzazione simbolica che desideri applicare, come dettagliato nella tabella sopra.
Nota: Non utilizzare mai lo spazio dopo i virgole quando si imposta un valore di maschera simbolica.
Ci sono anche altri operatori che puoi usare:
=
: Crea autorizzazioni file specificate e vieta autorizzazioni non specificate.+
: Crea autorizzazioni specificate, ma non modifica autorizzazioni non specificate.-
:Proibisce le autorizzazioni specificate, ma non modifica le autorizzazioni non specificate.
Impostazione di un valore Umask numerico
Dopo aver calcolato la umask richiesta valore numerico, impostarlo utilizzando:
umask [mask]
Dove:
[mask]
:il valore numerico della maschera che vuoi applicare.
Differenza tra umask e chmod
Il comando chmod in Linux funziona in modo simile a umask
comando. Viene anche usato per definire i permessi per file e cartelle.
La differenza tra umask
e chmod
è quello umask
cambia le autorizzazioni predefinite e quindi le autorizzazioni per tutti i file e le cartelle appena creati, mentre chmod
imposta le autorizzazioni per file e cartelle già esistenti.