androide

Comando Umask in Linux

curso de linux desde cero,. Comando umask

curso de linux desde cero,. Comando umask

Sommario:

Anonim

Sui sistemi operativi Linux e Unix, tutti i nuovi file vengono creati con un set predefinito di autorizzazioni. L'utilità umask 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.

È usato da mkdir, touch, tee e altri comandi che creano nuovi file e directory.

Autorizzazioni Linux

Prima di andare oltre, spieghiamo brevemente il modello delle autorizzazioni di Linux.

In Linux, ogni file è associato a un proprietario e un gruppo e assegnato con diritti di accesso di autorizzazione per tre diverse classi di utenti:

  • il proprietario del file. i membri del gruppo. chiunque altro.

Esistono tre tipi di autorizzazioni che si applicano 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 sul file o eseguire il file.

Per visualizzare le autorizzazioni del file, utilizzare il comando ls :

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 normale file ( - ), directory ( d ), collegamento simbolico ( l ) o qualsiasi altro tipo speciale di file.

I successivi nove caratteri rappresentano le autorizzazioni, tre serie di tre caratteri ciascuna. Le prime serie mostrano le autorizzazioni del proprietario, le seconde autorizzazioni di un gruppo e l'ultima mostra le autorizzazioni di tutti gli altri.

Il carattere r con un valore ottale di 4 indica lettura, w con un valore ottale di 2 per scrittura, x con un valore ottale di 1 per autorizzazione di esecuzione e ( - ) con valore ottale di 0 per nessuna autorizzazione.

Esistono anche altri tre tipi di autorizzazioni di file speciali: setuid , setgid e Sticky Bit .

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

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

  • Proprietario: rwx = 4+2+1 = 7 Gruppo: rx = 4+0+1 = 5 Altro: rx = 4+0+1 = 5

Se rappresentati 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 caso 755 è uguale a 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 cambiati usando il comando chmod e la proprietà usando il comando chown .

Comprensione umask

Per impostazione predefinita, sui sistemi Linux, le autorizzazioni di creazione predefinite sono 666 per i file, il che dà l'autorizzazione in lettura e scrittura a utenti, gruppi e altri e a 777 per le directory, il che significa autorizzazioni in lettura, scrittura ed esecuzione per utenti, gruppi e altri. Linux non consente la creazione di un file con autorizzazioni di esecuzione.

Le autorizzazioni di creazione predefinite possono essere modificate utilizzando l'utilità umask .

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

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

umask

L'output includerà il

022

Il valore umask contiene i bit di autorizzazione che NON verranno impostati sui file e sulle directory appena creati.

Come abbiamo già detto, le autorizzazioni di creazione predefinite per i file sono 666 e per le directory 777 . Per calcolare i bit di autorizzazione dei nuovi file sottrarre il valore umask dal valore predefinito.

Ad esempio, per calcolare in che modo uname 022 influenzerà i file e le directory appena creati, utilizzare:

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

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

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 sulle directory appena creati.

Impostazione del valore della maschera

La maschera di creazione del file può essere impostata usando la notazione ottale o simbolica. Per rendere permanenti le modifiche impostare il nuovo valore umask 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 al valore umask , assicurarsi che il nuovo valore non rappresenti un potenziale rischio per la sicurezza. I valori meno restrittivi di 022 devono essere usati con grande cautela. Ad esempio umask 000 significa che chiunque avrà l'autorizzazione a leggere, scrivere ed eseguire per tutti i file appena creati.

Supponiamo di voler impostare autorizzazioni più restrittive per i file e le directory appena creati, in modo che altri non siano in grado di eseguire il cd nelle directory e leggere i file. Le autorizzazioni che vogliamo sono 750 per le directory e 640 per i file.

Per calcolare il valore umask sufficiente sottrarre le autorizzazioni desiderate da quella predefinita:

Valore 777-750 = 027 : 777-750 = 027

Il valore umask desiderato rappresentato in notazione numerica è 027 .

Per impostare permanentemente il nuovo valore a livello di sistema, apri il /etc/profile con il tuo editor di testo:

sudo nano /etc/profile

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

/ Etc / profile

umask 027

Per rendere effettive le modifiche, eseguire il seguente comando di source o disconnettersi e accedere:

source /etc/profile

Per verificare le nuove impostazioni creeremo un nuovo file e directory usando mkdir e touch :

mkdir newdir touch newfile

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 è usare la notazione simbolica. Ad esempio umask u=rwx, g=rx, o= è uguale a umask 027 .

Conclusione

In questa guida, abbiamo spiegato le autorizzazioni di Linux e come utilizzare il comando umask per impostare i bit delle autorizzazioni per i file o le directory appena creati.

Per ulteriori informazioni, digitare man umask nel terminale.

terminale umask