GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Umask in Linux

Sui sistemi operativi Linux e Unix, tutti i nuovi file vengono creati con un insieme predefinito di autorizzazioni. La umask l'utilità consente di visualizzare o impostare la maschera di creazione della modalità file, che determina i bit di autorizzazione per i file o le directory appena creati.

Viene utilizzato da mkdir, touch, tee e altri comandi che creano nuovi file e directory.

Autorizzazioni Linux #

Prima di andare oltre, spieghiamo brevemente il modello dei permessi di Linux.

In Linux, ogni file è associato a un proprietario ea un gruppo e gli vengono assegnati diritti di accesso autorizzati per tre diverse classi di utenti:

  • Il proprietario del file.
  • I membri del gruppo.
  • Tutti gli altri.

Esistono tre tipi di autorizzazioni applicabili a ciascuna classe:

  • Il permesso di lettura.
  • Il permesso di scrittura.
  • Il permesso di esecuzione.

Questo concetto consente di specificare a quali utenti è consentito leggere il file, scrivere nel file o eseguire il file.

Per visualizzare i permessi dei file, usa ls comando:

ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr  8 20:51 dirname
|[-][-][-]    [------] [---]
| |  |  |        |       |       
| |  |  |        |       +-----------> Group
| |  |  |        +-------------------> Owner
| |  |  +----------------------------> Others Permissions
| |  +-------------------------------> Group Permissions
| +----------------------------------> Owner Permissions
+------------------------------------> File Type

Il primo carattere rappresenta il tipo di file che può essere un file normale (- ), una directory (d ), un collegamento simbolico(l ), o qualsiasi altro tipo speciale di file.

I successivi nove caratteri rappresentano i permessi, tre set di tre caratteri ciascuno. Il primo set mostra le autorizzazioni del proprietario, il secondo le autorizzazioni del gruppo e l'ultimo set mostra le autorizzazioni di tutti gli altri.

Carattere r con un valore ottale di 4 sta per read, w con un valore ottale di 2 per scrivere, x con un valore ottale di 1 per l'autorizzazione all'esecuzione e (- ) con un valore ottale di 0 senza permessi.

Ci sono anche altri tre tipi di permessi speciali sui file:setuid , setgid, e Sticky Bit .

Nell'esempio sopra (rwxr-xr-x ) significa che il proprietario ha letto, scritto ed eseguito i permessi (rwx ), il gruppo e altri hanno le autorizzazioni di lettura ed esecuzione.

Se rappresentiamo i permessi dei file utilizzando una notazione numerica, arriveremo al numero 755 :

  • Proprietario:rwx =4+2+1 = 7
  • Gruppo:r-x =4+0+1 = 5
  • Altro:r-x =4+0+1 = 5

Se rappresentate in notazione numerica, le autorizzazioni possono avere tre o quattro cifre ottali (0-7). La prima cifra rappresenta le autorizzazioni speciali e, se viene omessa, significa che non sono impostate autorizzazioni speciali sul file. Nel nostro esempio 755 è lo stesso di 0755 . La prima cifra può essere una combinazione di 4 per setuid , 2 per setgid e 1 per Sticky Bit .

I permessi dei file possono essere modificati usando il chmod comando e proprietà usando il chown comando.

Capire umask #

Per impostazione predefinita, sui sistemi Linux, i permessi di creazione predefiniti sono 666 per i file, che concede l'autorizzazione di lettura e scrittura a utenti, gruppi e altri e a 777 per le directory, che significa leggere, scrivere ed eseguire autorizzazioni per utenti, gruppi e altri. Linux non consente la creazione di un file con autorizzazioni di esecuzione.

I permessi di creazione predefiniti possono essere modificati usando umask utilità.

umask interessa solo l'ambiente shell corrente. Sulla maggior parte delle distribuzioni Linux, il valore umask predefinito a livello di sistema è impostato in pam_umask.so o /etc/profile file.

Se desideri specificare un valore diverso per utente, modifica i file di configurazione della shell dell'utente come ~/.bashrc o ~/.zshrc . Puoi anche cambiare la sessione corrente umask valore eseguendo umask seguito dal valore desiderato.

Per visualizzare il valore della maschera corrente, digita semplicemente umask senza argomenti:

umask

L'output includerà il

022

La umask value contiene i bit di autorizzazione che NON essere impostato sui file e le directory appena creati.

Come abbiamo già accennato, i permessi di creazione predefiniti per i file sono 666 e per le directory 777 . Per calcolare i bit di autorizzazione dei nuovi file, sottrai il valore umask dal valore predefinito.

Ad esempio, per calcolare come umask 022 influenzerà i file e le directory appena creati, usa:

  • File:666 - 022 = 644 . Il proprietario può leggere e modificare i file. Il gruppo e altri possono solo leggere i file.
  • Elenchi:777 - 022 = 755 .Il proprietario può cd nella directory ed elencare, leggere, modificare, creare o eliminare i file nella directory. Il gruppo e altri possono cd nella directory e nell'elenco e leggere i file.

Puoi anche visualizzare il valore della maschera in notazione simbolica usando il -S opzione:

umask -S
u=rwx,g=rx,o=rx

A differenza della notazione numerica, il valore della notazione simbolica contiene i bit di autorizzazione che verranno impostati sui file e le directory appena creati.

Impostazione del valore della maschera #

La maschera di creazione del file può essere impostata utilizzando la notazione ottale o simbolica. Per rendere permanenti le modifiche, imposta il nuovo umask valore in un file di configurazione globale come /etc/profile file che interesserà tutti gli utenti o nei file di configurazione della shell di un utente come ~/.profile , ~/.bashrc o ~/.zshrc , che interesserà solo l'utente. I file utente hanno la precedenza sui file globali.

Prima di apportare modifiche a umask valore, assicurarsi che il nuovo valore non rappresenti un potenziale rischio per la sicurezza. Valori meno restrittivi di 022 dovrebbe essere usato con grande cautela. Ad esempio, umask 000 significa che chiunque ha letto, scritto ed eseguito le autorizzazioni su tutti i file appena creati.

Diciamo che vogliamo impostare permessi più restrittivi per i file e le directory appena creati in modo che altri non possano cd alle directory e leggere i file. I permessi che vogliamo sono 750 per directory e 640 per i file.

Per calcolare il umask valore, è sufficiente sottrarre i permessi desiderati da quello predefinito:

Valore Umask:777-750 = 027

Il umask desiderato il valore rappresentato in notazione numerica è 027 .

Per impostare in modo permanente il nuovo valore a livello di sistema, apri il /etc/profile file con il tuo editor di testo:

sudo nano /etc/profile

e cambia o aggiungi la seguente riga all'inizio del file:

/etc/profile
umask 027

Per rendere effettive le modifiche, esegui il seguente source comando o disconnetti e accedi:

source /etc/profile

Per verificare le nuove impostazioni, creeremo un nuovo file e una nuova directory utilizzando mkdir e touch :

mkdir newdirtouch newfile

Se controlli i permessi usando ls comando, noterai che il nuovo file ha 640 e la nuova directory 750 permessi, come volevamo:

drwxr-x--- 2 linuxize users 4096 Jul  4 18:14  newdir
-rw-r----- 1 linuxize users    0 Jul  4 18:14  newfile

Un altro modo per impostare la maschera di creazione del file è utilizzare la notazione simbolica. Ad esempio umask u=rwx,g=rx,o= è uguale a umask 027 .

Conclusione #

In questa guida abbiamo spiegato i permessi di Linux e come usare umask comando per impostare i bit di autorizzazione per i file o le directory appena creati.

Per ulteriori informazioni, digita man umask nel tuo terminale.

Se hai domande, lascia un commento qui sotto.


Linux
  1. Cos'è Umask in Linux

  2. Comando Linux mv

  3. Linux du comando

  4. comando IP Linux

  5. umask:comando non trovato

Comando W in Linux

Al comando in Linux

Comando Chmod in Linux

Comando Df in Linux

Comando Umask in Linux

Esempi di comandi chmod di Linux