Cosa significa chmod 777

2 gen 2024 4 min di lettura
Cosa significa chmod 777
Indice dei contenuti

Introduzione

Stai tentando di risolvere un problema di autorizzazione con il tuo server web e hai trovato informazioni su Internet che dicono che devi eseguire ricorsivamente chmod 777 sulla directory web. Prima di farlo, assicurati di capire cosa chmod -R 777 fa e perché non dovresti mai impostare le autorizzazioni su 777.

Questo articolo spiega il modello delle autorizzazioni Linux e il significato dei numeri di autorizzazione.

Comprendere le autorizzazioni dei file Linux

In Linux, l'accesso ai file è controllato dal sistema operativo utilizzando autorizzazioni, attributi e proprietà dei file. Comprendere il modello di autorizzazioni del file system Linux consente di limitare l'accesso a file e directory solo agli utenti e ai processi autorizzati e rende il sistema più sicuro.

Ogni file è di proprietà di un particolare utente e di un gruppo e gli vengono assegnati diritti di accesso per tre diverse classi di utenti:

  • Il proprietario del file.
  • I membri del gruppo.
  • Altri (tutti gli altri).

Tre tipi di permessi file si applicano a ciascuna classe utente e consentono di specificare a quali utenti è consentito leggere, scrivere o eseguire il file. Gli stessi attributi di autorizzazione si applicano sia ai file che alle directory con un significato diverso:

  • Il permesso di lettura.
    • Il file è leggibile. Ad esempio, quando è impostata l'autorizzazione di lettura, l'utente può aprire il file in un editor di testo o visualizzare il contenuto del file nel terminale.
    • È possibile visualizzare il contenuto della directory. L'utente può elencare i file all'interno della directory con il comando ls.
  • Il permesso di scrittura.
    • Il file può essere cambiato o modificato.
    • Il contenuto della directory può essere modificato. L'utente può creare nuovi file , eliminare file esistenti , spostare file , rinominare file , ecc.
  • Il permesso di esecuzione.
    • Il file può essere eseguito. L'utente può eseguire il file (script) dalla riga di comando
    • La directory può essere inserita utilizzando il comando cd.

Le autorizzazioni dei file possono essere visualizzate utilizzando il comando ls. Ecco un esempio:

ls -l filename.txt
-rw-r--r-- 12 noviello users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

Il primo carattere indica il tipo di file. Può essere un file normale (-), una directory  (d), un collegamento simbolico (l) o qualsiasi altro tipo speciale di file.

I successivi nove caratteri rappresentano i permessi dei file, divisi in tre triplette di tre caratteri ciascuna. La prima tripletta mostra le autorizzazioni del proprietario, la seconda le autorizzazioni del gruppo e l'ultima mostra le autorizzazioni per tutti gli altri.

Numero di autorizzazione

I permessi dei file possono essere rappresentati in formato numerico o simbolico. In questo articolo ci concentreremo sul formato numerico.

Il numero di autorizzazione può essere composto da tre o quattro cifre, da 0 a 7.

Quando si utilizza un numero a 3 cifre per rappresentare le autorizzazioni dei file, la prima cifra corrisponde alle autorizzazioni del proprietario, la seconda cifra alle autorizzazioni del gruppo e la terza cifra alle autorizzazioni di tutti gli altri.

Le autorizzazioni di scrittura, lettura ed esecuzione hanno il seguente valore numerico:

  • r(leggi) = 4
  • w(scrivere) = 2
  • x(eseguire) = 1
  • nessuna autorizzazione = 0

La cifra dei permessi di una classe utente specifica è la somma dei valori dei permessi per quella classe.

Ciascuna cifra del numero di autorizzazioni può essere la somma di 4, 2, 1 e 0:

  • 0 (0+0+0) – Nessuna autorizzazione.
  • 1 (0+0+1) – Esegue solo il permesso.
  • 2 (0+2+0) – Solo permesso di scrittura.
  • 3 (0+2+1) – Permessi di scrittura ed esecuzione.
  • 4 (4+0+0) – Solo permesso di lettura.
  • 5 (4+0+1) – Permesso di lettura ed esecuzione.
  • 6 (4+2+0) – Permessi di lettura e scrittura.
  • 7 (4+2+1) – Autorizzazione di lettura, scrittura ed esecuzione.

Ad esempio, se il numero di autorizzazione è impostato su 750, significa che il proprietario del file ha le autorizzazioni di lettura, scrittura ed esecuzione. Il gruppo del file ha permessi di lettura ed esecuzione, mentre gli altri utenti non hanno permessi:

  • Proprietario: rwx=4+2+1=7
  • Gruppo: rx=4+0+1=5
  • Altri: rx=0+0+0=0

Quando viene utilizzato un numero di 4 cifre, la prima cifra ha il seguente significato:

  • setuid = 4
  • setgid = 2
  • appiccicoso = 1
  • nessuna modifica = 0
  • Le tre cifre successive hanno lo stesso significato di quando si utilizza un numero a 3 cifre. Se la prima cifra è 0 può essere omessa e la modalità può essere rappresentata con 3 cifre. Ad esempio, la modalità numerica 0755 è la stessa di 755.

Per visualizzare i permessi del file nella notazione numerica (ottale), puoi utilizzare il comando stat:

stat -c "%a" filename

copia

644

Non usare mai chmod 777

L'impostazione dei permessi 777 (chmod 777) su un file o una directory significa che sarà leggibile, scrivibile ed eseguibile da tutti gli utenti e potrebbe rappresentare un enorme rischio per la sicurezza.

Ad esempio, se si modificano ricorsivamente i permessi di tutti i file e le sottodirectory nella directory /var/www in 777, qualsiasi utente del sistema sarà in grado di creare, eliminare o modificare i file in quella directory.

Se riscontri problemi di autorizzazione con il tuo server web, invece di impostare ricorsivamente l'autorizzazione su 777, cambia la proprietà del file sull'utente che esegue l'applicazione e imposta le autorizzazioni del file su 644e le autorizzazioni della directory su 755.

La proprietà del file può essere modificata utilizzando il comando chown e le autorizzazioni con il comando chmod.

Supponiamo che tu abbia un'applicazione PHP sul tuo server in esecuzione come utente "noviello". Per impostare le autorizzazioni corrette, eseguire quanto segue:

chown -R noviello: /var/www

Solo il root, il proprietario del file o l'utente con privilegi sudo possono modificare i permessi di un file. Prestare particolare attenzione quando si utilizza chmod, soprattutto quando si modificano ricorsivamente le autorizzazioni.

Conclusione

Se gestisci un sistema Linux, è fondamentale sapere come funzionano le autorizzazioni Linux.

Non dovresti mai impostare i permessi rwxrwxrwx 777 ( ) su file e directory. 777 significa che chiunque può fare qualsiasi cosa con quei file.

Sentiti libero di lasciare un commento se hai domande.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.