'chmod u + x' contro 'chmod + x'

90

Qual è la differenza tra chmod u+x e solo chmod +x ? Ho visto un sacco di tutorial che dicono di usare u + x per rendere eseguibili gli script. Tuttavia, u non è menzionato nella guida o nel manuale di chmod. Omettere la tua non sembra avere alcun effetto. È solo un argomento deprecato? Grazie.

    
posta schwiz 08.03.2011 - 23:30

4 risposte

122

La pagina man di chmod copre quella.

  • u sta per utente.
  • g sta per gruppo.
  • o sta per gli altri.
  • a sta per tutti.

Ciò significa che chmod u+x somefile concederà solo il proprietario delle autorizzazioni di esecuzione del file mentre chmod +x somefile è uguale a chmod a+x somefile .

La pagina man chmod dice:

  

Il formato di una modalità simbolica è   %codice%.   Molteplici operazioni simboliche possono essere   dato, separato da virgole.

     

Una combinazione delle lettere "ugoa"   controlla quali utenti possono accedere a   il file verrà modificato: l'utente che   lo possiede (u), altri utenti nel file   gruppo (g), altri utenti non nel   gruppo di file (o) o tutti gli utenti (a). Se   nessuno di questi è dato, l'effetto è   come se fosse stato dato un 'a', ma in parte quello   sono impostati nella umask non sono interessati.

    
risposta data Octavian Damiean 08.03.2011 - 23:33
19

Semplicemente facendo +x lo applicherà a tutti i flag: [u] ser, [g] roup, [o] thers.

Digita man chmod per ulteriori informazioni.

    
risposta data matpie 08.03.2011 - 23:34
7

chmod u+x renderà il file eseguibile per il tuo utente (lo aggiungerà solo per il tuo utente, anche se potrebbe essere già eseguibile dal proprietario del gruppo o da "altro").

chmod +x o chmod a+x ('tutto più bit eseguibile') rende il file eseguibile da tutti.

Se lo fai in una directory, rende invece la directory ricercabile. Ad esempio, puoi elencare il contenuto di una directory su cui hai + x permesso.

    
risposta data belacqua 08.03.2011 - 23:51
1
  • chmod u+x file significa aggiungere il bit eseguibile al proprietario del file ignorando il umask (il tuo mod sarà impostato, nessuna domanda).

  • chmod +x file significa aggiungere il bit eseguibile al proprietario, al gruppo e ad altri mentre si considera umask (Primo controllo con umask , quindi applicare i mods, potrebbe avere effetti diversi in base al valore di umask).

creiamo due file:

$ touch file1 file2
$ ls -l file1 file2
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:45 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:45 file2

Ora ho impostato umask su "111" per rimuovere i bit eseguibili: umask 111 .

$ chmod u+x file1
$ chmod  +x file2
$ ls -l file1 file2
-rwxrw-rw- 1 ravexina ravexina 0 Aug  5 01:47 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:47 file2

Come puoi vedere chmod ha ignorato umask e il file1 ha ottenuto il bit eseguibile per il suo proprietario, tuttavia il secondo non ha fatto nulla perché sta considerando il valore di umask.

    
risposta data Ravexina 04.08.2017 - 23:21

Leggi altre domande sui tag