Non c'è alcuna incoerenza reale, in quanto la relazione tra umask
e chmod
può essere semplicemente scritta con le equazioni. Apparentemente, umask
imposta il contrario di chmod
, è stato creato in questo modo ai vecchi tempi.
Esempio: 022
(il valore predefinito al solito umask
) crea 755
. Funziona in questo modo:
7 - 0 = 7
diventa il primo byte
7 - 2 = 5
diventa il secondo e il terzo byte
Utilizzando questo esempio, umask 777
crea un file con chmod 000
, umask 112
sarà pari a chmod 664
. Per quanto ne so, questo è successo perché il comando umask
è stato originariamente creato per indicare quali bit di autorizzazione il file sarà NON dopo la sua creazione (da qui l'invertion).
Mentre potrebbe essere fastidioso, non è davvero difficile abituarsi. Pensa solo al modo in cui vuoi aggiungere i tuoi file a e sottrarre il byte desiderato da 7
e otterrai il valore umask
. Oppure, quando si è all'IDE, scrivendo il proprio codice, non utilizzare umask
, ma piuttosto creare il file (con il valore predefinito umask
ovviamente) e quindi utilizzare, in Python, os.chmod()
.
È una "maschera" - questo è ciò che significa la parola in questo contesto; qualcosa che lascia passare solo i bit non impostati (si pensi alle maschere utilizzate per dipingere, creare chip e simili). Se non funzionasse in questo modo, sarebbe chiamato qualcos'altro. –