curso de linux desde cero,. Comando umask
Sommario:
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 ilcd
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.
Cogli la riga di comando con il comando Take

Integra il prompt dei comandi, la GUI e un potente linguaggio batch con il potente toolkit Take Command.
Comando chmod in linux (permessi dei file)

In Linux l'accesso ai file è gestito attraverso le autorizzazioni, gli attributi e la proprietà dei file. Questa esercitazione illustra come utilizzare il comando chmod per modificare le autorizzazioni di accesso a file e directory.
Comando chgrp in linux (cambia gruppo)

In Linux, ogni file è associato a un proprietario e un gruppo e dispone di autorizzazioni che determinano quali utenti possono leggere, scrivere o eseguire il file. Il comando chgrpc modifica la proprietà del gruppo di determinati file.