La tua situazione specifica
Nella tua situazione specifica, possiamo supporre che il tuo attuale umask
è 002
(questo è un valore predefinito comune) e questo spiega la tua sorpresa.
In quella specifica situazione in cui umask
il valore è 002 (tutti i numeri ottali).
+r
significaugo+r
perché002 & 444
è000
, che consente di impostare tutti i bit+x
significaugo+x
perché002 & 111
è000
, che consente di impostare tutti i bit- ma
+w
significaug+w
perché002 & 222
è002
, che impedisce l'impostazione del bit "o".
Altri esempi
- Con
umask 022
+w
significherebbeu+w
. - Con
umask 007
+rwx
significherebbeug+rwx
. - Con
umask 077
+rwx
significherebbeu+rwx
.
Cosa avrebbe soddisfatto le tue aspettative
Quando cambi umask
a 000
, eseguendo
umask 000
nel tuo terminale, quindi
chmod +w file
imposterà i permessi su ugo+w.
Nota a margine
Come suggerito da ilkkachu, nota che umask 000
non significa che tutti possono leggere e scrivere tutti i tuoi file.
Ma umask 000
indica chiunque abbia un qualche tipo di accesso a qualsiasi l'account utente sulla tua macchina (che può includere programmi che eseguono servizi server ofc) può leggere e scrivere tutti i file che crei con quella maschera attiva e non cambia (se anche la catena di directory contenente fino alla radice lo consente). /P>
Con:
chmod +<perms>
le autorizzazioni vengono aggiunte a user , gruppo e altro ma con l'umask ancora in vigore. Si assicura che al file non vengano concessi più permessi rispetto a un file appena creato.
Se vuoi aggiungere i permessi a user , gruppi e altro indipendentemente dall'umask, usa
chmod a+<perms>
che è l'abbreviazione di
chmod ugo+<perms>