GNU/Linux >> Linux Esercitazione >  >> Linux

Cos'è umask in Linux?

UMASK nei sistemi Linux o Unix è noto come maschera utente o è anche chiamato maschera per la creazione di file utente. Questa è un'autorizzazione di base o un'autorizzazione predefinita quando viene creato un nuovo file o cartella nella macchina Linux.

Viene utilizzato da più comandi in Linux come mkdir, touch, tee e altri comandi che creano file e directory. Viene coinvolto in ogni singolo passaggio quando viene creato un nuovo file o directory.

Autorizzazioni file:

Prima di andare avanti per approfondire e comprendere umask, comprendiamo innanzitutto i permessi dei file in breve.

Linux è noto per la sua sicurezza. Ogni file o directory in Linux ha un insieme specifico di autorizzazioni e proprietà. Diamo un'occhiata alla classe utente di seguito.

Ogni file in Linux avrà sotto tre classi utente ad esso associate.

  1. Utente - Un utente proprietario del file:per impostazione predefinita, indica chi ha creato il file a meno che non lo modifichi.
  2. Gruppo - Indica che le persone nel gruppo avranno assegnato le autorizzazioni al file.
  3. Altro - Questo limita gli altri utenti che non sono il proprietario o nel gruppo assegnato.

Esistono tre tipi di accesso ai file per ciascuna classe utente sopra menzionata.

  1. r - permesso di lettura - la possibilità di leggere il contenuto del file
  2. w - autorizzazione di scrittura - la possibilità di modificare il contenuto del file
  3. x - permesso di esecuzione - la possibilità di eseguire il file come programma

Il concetto di cui sopra indica chi è autorizzato a leggere il contenuto del file, modificare il contenuto del file o eseguire il programma.

Autorizzazioni di visualizzazione - Modalità simbolica:

Diamo un'occhiata alla proprietà del file di seguito. Puoi recuperare le informazioni sulla tua macchina Linux digitando il comando ls -l.

Il primo carattere nell'immagine sopra mostra il tipo di file. Potrebbero esserci diversi tipi di file in Linux come di seguito.

-   

Indica il semplice file regolare con estensioni diverse come .txt, .json, .sh, .py, .rb e così via

d

Indica directory/cartella

l

Indica un collegamento simbolico o un collegamento simbolico o un collegamento software

c

Indica il file del dispositivo di caratteri

b

Indica il file del dispositivo a blocchi

I prossimi nove simboli sono divisi in tre parti come di seguito.

rwx

Il file proprietario può leggere il contenuto, modificarlo ed eseguire il file come programma

r-x

Membri nel gruppo Gli “utenti” possono leggere il contenuto ed eseguire il file come un programma ma non possono modificare il contenuto del file

r-x

Colui che non è il proprietario non è nemmeno il membro del gruppo cioè altro , può anche leggere il contenuto del file ed eseguire il file come programma ma non può modificare il contenuto del file

Autorizzazioni di visualizzazione - Modalità numerica:

C'è un modo aggiuntivo per rappresentare i permessi usando i numeri chiamati Modalità numerica.

Diamo un'occhiata al grafico dei permessi dei file numerici di seguito.

  0

---

Nessun permesso

1

--x

Solo permessi di esecuzione

2

-w-

Solo permessi di scrittura

3

-wx

Autorizzazione di scrittura ed esecuzione

4

r--

Permesso di sola lettura

5

r-x

Autorizzazione di lettura ed esecuzione

6

rw-

Autorizzazione di lettura e scrittura

7

rwx

Autorizzazione di lettura, scrittura ed esecuzione

Se faccio riferimento a questo grafico delle autorizzazioni numeriche e lo applico sulla stessa directory menzionata nell'immagine sopra, l'autorizzazione sarà simile a quella riportata di seguito.

rwx

4+2+1

7

r-x

4+0+1

5

r-x

4+0+1

5


Quindi, l'autorizzazione numerica della directory testdir è 755. 

Capire UMASK:

Creiamo un nuovo file e una nuova directory eseguendo il comando seguente.

$ touch testfile
$ mkdir testdir

Vediamo i permessi di testfile e testdir eseguendo il comando ls -l.

$ ls -l

 
Output:
drwxr-xr-x  2 niteshb users    4096 Mar 21 22:43 testdir
-rw-r--r--  1 niteshb users       0 Mar 21 22:43 testfile
 

Hai notato i permessi? Sono diversi, giusto? Ciò è dovuto al valore umask predefinito impostato nella macchina Linux.

Per impostazione predefinita, sulla macchina Linux, il permesso di creazione predefinito per un file è 666 che fornisce il permesso di lettura e scrittura al proprietario, al gruppo e ad altri e 777 per una directory che significa il permesso di lettura, scrittura ed esecuzione al proprietario, al gruppo e altri.

Come sappiamo le directory non possono essere eseguibili. Allora perché la directory ha bisogno di un'autorizzazione di esecuzione? Bene, l'autorizzazione di esecuzione per la directory è di consentire l'accesso ai contenuti nella directory. Se usando il comando chmod cambiamo il permesso della directory in 666 e proviamo ad entrare nella directory con il comando cd, otterrai un errore di permesso negato.

Sulla maggior parte delle distribuzioni Linux, il valore predefinito a livello di sistema è impostato in pam_umask.so o nel file /etc/profile. Aggiungendo il valore nel file ~/.bashrc nella home directory dell'utente, possiamo creare un valore umask specifico per l'utente.

Per controllare il valore di umask, esegui il comando umask.

$umask

Risultato:

0022

Per ora possiamo ignorare il primo 0 da sopra i quattro numeri. Fa parte dei permessi avanzati in Linux. Ciò può impedire la modifica del file anche se disponi dell'autorizzazione di scrittura o possiamo impedire di eliminare un file anche se sei l'utente root. In questo blog ci concentreremo solo sugli altri tre numeri.

Per modificare il valore umask della sessione corrente, eseguire il comando seguente seguito dal valore desiderato.

$umask 0044

Come file e directory ottengono i loro permessi:

Il valore associato a umask NON è l'autorizzazione che ottieni per i tuoi file e directory.

C'è un calcolo molto semplice. Come accennato in precedenza, il valore predefinito per un file è 666 e per una directory è 777. Per calcolare i bit di autorizzazione per nuovi file o directory, sottrarre il valore umask dal valore predefinito.

Ad esempio, calcoliamo come influirà un nuovo file o un'autorizzazione di directory a causa di umask.

  • File:666 - 022 =644. In base all'autorizzazione, il proprietario può leggere ed eseguire il file. Gruppi e altri possono leggere il file.
  • Directory:777 - 022 =755. Ciò significa che il proprietario avrà tutti i permessi di lettura, scrittura e cd nella directory. Group e altri possono leggere ed elencare il contenuto della directory e cd nella directory.

Puoi anche visualizzare il valore umask in forma numerica eseguendo il comando seguente.

$umask

Risultato:

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 valore umask in un file di configurazione globale come /etc/profile 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 avrà l'autorizzazione di lettura, scrittura ed esecuzione per 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 value è 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, aprire il /etc/profile file con il tuo editor di testo e modifica o aggiungi la seguente riga all'inizio del file:

umask 0027

Affinché le modifiche abbiano effetto, esegui il seguente comando sorgente o disconnetti e accedi:

$source /etc/profile

Per verificare le nuove impostazioni creeremo un nuovo file e directory utilizzando i comandi seguenti.

$mkdir newtestdir
$touch newtestfile

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

drwxr-xr--  2 niteshb  users    4096 Mar 21 22:43 newtestdir
-rw-r-----  1 niteshb  users       0 Mar 21 22:43 newtestfile
 

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 il comando seguente nel tuo terminale.

$man umask

Linux
  1. Che cos'è un utente Linux?

  2. Cos'è umask in UNIX/Linux

  3. Cosa sono i file sparsi in Linux

  4. Qual è lo scopo del file .bashrc in Linux

  5. Cos'è un file .so?

Comando Umask in Linux

Che cos'è il file system Linux? Guida facile

Cosa sono gli inode in Linux?

Che cos'è il file .bashrc in Linux?

Che cos'è il file /etc/passwd in Linux?

Cos'è un file .sh?