GNU/Linux >> Linux Esercitazione >  >> Linux

Perché chmod +w non concede il permesso di scrittura ad altri(o)

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 significa ugo+r perché 002 & 444 è 000 , che consente di impostare tutti i bit
  • +x significa ugo+x perché 002 & 111 è 000 , che consente di impostare tutti i bit
  • ma +w significa ug+w perché 002 & 222 è 002 , che impedisce l'impostazione del bit "o".

Altri esempi

  • Con umask 022 +w significherebbe u+w .
  • Con umask 007 +rwx significherebbe ug+rwx .
  • Con umask 077 +rwx significherebbe u+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>

Linux
  1. Perché l'espressione regolare funziona in X ma non in Y?

  2. Perché `md5sum` non fornisce lo stesso hash di Internet?

  3. Perché le interfacce di rete non sono in /dev come altri dispositivi?

  4. Perché `esce &` non funziona?

  5. Perché Tomcat funziona con la porta 8080 ma non con la 80?

Perché Mv(1) copia gli oggetti se l'autorizzazione a spostarsi è negata?

Linux:perché Rsync su Linux non conserva tutti i timestamp (ora di creazione)?

Perché find -exec mv {} ./target/ + non funziona?

Perché il contenitore docker richiede Autorizzazione negata?

Perché yum updateinfo non mostra tutti gli aggiornamenti?

Come impostare l'autorizzazione drwxr-xr-x su altre cartelle?