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 777nelle 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 077per disattivare quelle autorizzazioni per il gruppo e altri.
Al contrario, un umask di 000renderà 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 022che 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 geditnel 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 ~/.profilee aggiungi una nuova riga con:
umask 007
È necessario effettuare nuovamente l'accesso per ~/.profilerendere 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 -00file_mode 022 --- -w- -w-