Chmod di lettere contro numeri


8

Recentemente un collega mi ha chiesto di utilizzare le chmodlettere anziché i numeri. A parte l'ovvio vantaggio della leggibilità, c'è qualche motivo particolare per usare le lettere sui numeri?

Risposte:


13

La chmodnotazione simbolica è più dettagliata rispetto alla notazione ottale, consentendo la modifica di bit di modalità specifici lasciando intatti altri bit di modalità.

La notazione simbolica è composta da tre componenti:

chmod [references][operator][modes] file

Il referencesè costituito da una combinazione di lettere ugoa, che specificano quale utente di accesso alla filesaranno modificati: l'utente che lo possiede ( u), altri utenti nel gruppo del file ( g), gli altri utenti non nel gruppo del file ( o), o tutti gli utenti ( a). Se il referencescomponente viene omesso, viene impostato per impostazione predefinita su tutti gli utenti, ma umaskvengono modificate solo le autorizzazioni consentite da .

Ciò + operatorcausa l'aggiunta dei bit della modalità file specificati ai bit della modalità file esistenti di ciascun file; -li fa rimuovere; e =fa sì che vengano aggiunti e bit specificato da rimuovere, tranne setuide setgidbit impostati per gli elenchi, se non esplicitamente specificato.

È modecostituito da una combinazione di lettere rwxXst, che corrispondono a read ( r), write ( w), execute (o search for directory) ( x), eseguono / search solo se il file è una directory o ha già i permessi di esecuzione per alcuni utenti ( X) setuido setgid(in base ai riferimenti specificati) ( s) e flag di cancellazione limitato o bit appiccicoso ( t). In alternativa, modepuò essere costituito da una delle lettere ugo, nel qual caso modecorrisponde alle autorizzazioni attualmente concesse al proprietario ( u), al membro del gruppo del file ( g) o alle autorizzazioni degli utenti in nessuna delle precedenti categorie ( o).

Esempi

Supponendo che l'autorizzazione impostata filesia0764/-rwxrw-r--

Rimuovere l'autorizzazione da altri utenti non appartenenti al gruppo di file:

  • Octal: chmod 760 file

    Nota come le autorizzazioni esistenti lasciate invariate devono essere ripetute quando si usa la notazione ottale.

  • Simbolico: chmod o-rwx file

    Con la notazione simbolica, le autorizzazioni dei file esistenti non contano.

Impostare setuid:

  • Octal: chmod 4764 file

  • Simbolico: chmod u+s file

Impostare setgid:

  • Octal: chmod 2764 file
  • Simbolico chmod g+s file

1

L'uso delle lettere consente di attivare e disattivare singoli bit senza modificare gli altri bit.

Di 'che ho la seguente directory: drwxrwsr-x 6 f261-01a g261-01a 4096 12 set 17:51 / home / teams / 261 / f261-01a

Se desidero disattivare il permesso di lettura per altri e voglio usare i numeri, potrei farlo rapidamente chmod 751. Tranne che ho appena disattivato il bit setgid nella directory. Ops.

Se, tuttavia, lo uso chmod o-r, deseleziono solo il bit di lettura desiderato e il bit setgid nella directory rimane impostato.

È anche utile se si desidera attivare setuid, setgid o sticky bit su un file o una directory. Soprattutto se lo fai così di rado hai problemi a ricordare quale bit è quale nel 4 ° ottetto.

Quindi dipende da cosa stai facendo. Preferisco ancora usare i numeri quando sto solo impostando le autorizzazioni e non mi interessa cosa c'è per cominciare. Ma se si alternano i singoli bit, la notazione delle lettere è molto più semplice.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.