Umask funge da insieme di autorizzazioni che le applicazioni non possono impostare sui file. È una maschera di creazione della modalità file per i processi e non può essere impostata per le directory stesse. La maggior parte delle applicazioni non creerebbe file con le autorizzazioni di esecuzione impostate, quindi avrebbero un valore predefinito di 666
, che verrà quindi modificato da umask.
Poiché hai impostato umask per rimuovere i bit di lettura / scrittura per il proprietario e i bit di lettura per gli altri, un valore predefinito come 777
nelle applicazioni comporterebbe l'autorizzazione dei file 133
. Ciò significherebbe che tu (e altri) potreste eseguire il file e che altri potrebbero scriverlo.
Se vuoi fare in modo che i file non vengano letti / scritti / eseguiti da chiunque tranne che dal proprietario, dovresti usare un umask come 077
per disattivare quelle autorizzazioni per il gruppo e altri.
Al contrario, un umask di 000
renderà le directory appena create leggibili, scrivibili e descrivibili per tutti (i permessi saranno 777
). Una simile umask è altamente insicura e non dovresti mai impostarla 000
.
L'umask predefinito su Ubuntu era 022
che significa che i file appena creati sono leggibili da tutti, ma scrivibili solo dal proprietario:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
A partire da Ubuntu Oneiric (11.10) è stata rilassata l'umask predefinita 002
, che espande l'accesso in scrittura al gruppo del proprietario:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
Visualizzazione e modifica di umask
Per visualizzare l'impostazione umask corrente, aprire un terminale ed eseguire il comando:
umask
Per modificare l'impostazione umask della shell corrente in qualcos'altro, dire 077, eseguire:
umask 077
Per verificare se questa impostazione funziona o meno, è possibile creare un nuovo file (le autorizzazioni di un file esistente non saranno interessate) e mostrare informazioni sul file, eseguire:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
L'impostazione umask è ereditata dai processi avviati dalla stessa shell. Ad esempio, avvia l'editor di testo GEdit eseguendolo gedit
nel terminale e salva un file usando gedit. Noterai che il file appena creato è influenzato dalla stessa impostazione umask del terminale.
Caso d'uso: sistema multiutente
Se si utilizza un sistema condiviso da più utenti, si desidera che altri non possano leggere i file nella propria directory home. Per questo, un'ombra è molto utile. Modifica ~/.profile
e aggiungi una nuova riga con:
umask 007
È necessario effettuare nuovamente l'accesso per ~/.profile
rendere effettiva questa modifica umask . Successivamente, è necessario modificare le autorizzazioni dei file esistenti dei file nella home directory rimuovendo il bit di lettura, scrittura ed esecuzione per il mondo. Apri un terminale ed esegui:
chmod -R o-rwx ~
Se si desidera applicare questa impostazione umask a tutti gli utenti del sistema, è possibile modificare il file di profilo a livello di sistema in /etc/profile
.
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-