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).
+rsignificaugo+rperché002 & 444è000, che consente di impostare tutti i bit+xsignificaugo+xperché002 & 111è000, che consente di impostare tutti i bit- ma
+wsignificaug+wperché002 & 222è002, che impedisce l'impostazione del bit "o".
Altri esempi
- Con
umask 022+wsignificherebbeu+w. - Con
umask 007+rwxsignificherebbeug+rwx. - Con
umask 077+rwxsignificherebbeu+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>