Spiegato il comando Chmod e le autorizzazioni dei file Linux

Spiegato il comando Chmod e le autorizzazioni dei file Linux / Linux

Quindi hai trovato un assaggio di Linux che ti piace, ma ora sei confuso perché non hai la più pallida idea dei comandi del terminale e delle autorizzazioni dei file Linux?

O forse hai un sito web che è ospitato su un server Linux e hai incontrato alcuni problemi di autorizzazione dei file che possono essere risolti solo con qualche magia da linea di comando.

Indipendentemente da ciò, uno dei comandi Linux più essenziali per imparare An A-Z di Linux - 40 comandi essenziali che dovresti conoscere una A-Z di Linux - 40 comandi essenziali che dovresti sapere Linux è la terza ruota spesso ignorata per Windows e Mac. Sì, negli ultimi dieci anni, il sistema operativo open source ha guadagnato molta trazione, ma è ancora ben lontano dall'essere considerato ... Read More è un comando piccolo ma potente chiamato chmod. Ma prima di spiegare cosa fa il comando, dobbiamo prima capire un po 'come Linux gestisce la sicurezza dei file.

Nozioni di base sui permessi dei file di Linux

I sistemi operativi Linux sono in realtà sistemi simil-Unix (comprendendo Linux rispetto a Unix), e i sistemi di tipo Unix si avvicinano ai permessi dei file in questo modo:

Ogni file ha un proprietario, che determina il file “classe utente.” Ogni file ha anche un gruppo, che determina il file “classe di gruppo.” Qualsiasi utente di sistema che non è il proprietario e non appartiene allo stesso gruppo è determinato a esserlo altri.

Tutti i file su sistemi Unix hanno le autorizzazioni assegnate a tutte e tre le classi e determinano quali azioni possono essere eseguite da dette classi per il file specificato.

Le tre azioni disponibili su un sistema simile a Unix sono: leggere (la possibilità di aprire e visualizzare il contenuto del file), Scrivi (la capacità di aprire e modificare il contenuto di un file), e eseguire (la possibilità di eseguire il file come un programma eseguibile).

In altre parole, le autorizzazioni di un file determinano se:

  • Il proprietario può leggere, scrivere ed eseguire il file.
  • Il gruppo può leggere, scrivere ed eseguire il file.
  • Chiunque può leggere, scrivere ed eseguire il file.

Le autorizzazioni per i file Linux possono essere visualizzate in due formati.

Il primo formato è chiamato notazione simbolica, che è una stringa di 10 caratteri: un carattere che rappresenta il tipo di file, quindi nove caratteri che rappresentano le autorizzazioni di lettura (r), scrittura (w) e esecuzione (x) del file in ordine di proprietario, gruppo e altri. Se non è consentito, viene utilizzato il simbolo del trattino (-).

Per esempio:

-rwxr-xr--

Ciò significa che è un file regolare con autorizzazioni di lettura, scrittura ed esecuzione per il proprietario; leggere ed eseguire permessi per il gruppo; e legge solo i permessi per tutti gli altri.

Il secondo formato è chiamato notazione numerica, che è una stringa di tre cifre che rappresentano rispettivamente l'utente, il gruppo e altre autorizzazioni. Ogni cifra può variare da 0 a 7 e il valore di ciascuna cifra viene ottenuto sommando le autorizzazioni della classe:

  • 0 significa che non sono permesse autorizzazioni.
  • +1 se la classe può eseguire il file.
  • +2 se la classe può scrivere nel file.
  • +4 se la classe può leggere il file.

In altre parole, il significato di ciascun valore di cifra finisce per essere:

  • 0: nessuna autorizzazione
  • 1: Esegui
  • 2: Scrivi
  • 3: Scrivi ed esegui
  • 4: Leggi
  • 5: leggi ed esegui
  • 6: leggi e scrivi
  • 7: leggi, scrivi ed esegui

Quindi l'esempio sopra (-rwxr-xr--) sarebbe 754 in notazione numerica.

Ecco le autorizzazioni per i file di Linux in poche parole.

Che cosa è Chmod?

Su sistemi simil-Unix, chmod è un comando a livello di sistema che sta per “cambia modalità” e consente di modificare manualmente le impostazioni di autorizzazione di un file.

Da non confondere con chown, che è un altro comando a livello di sistema su sistemi simil-Unix che rappresenta “Cambiare proprietario” e ti consente di assegnare la proprietà di un file a un altro utente o chgrp, che sta per “cambia gruppo” e assegna un file a un gruppo diverso. Questi sono importanti da sapere, ma non così comunemente usati come chmod.

Cosa significa Chmod 644?

Impostando i permessi di un file su 644, solo così il proprietario può accedere e modificare il file come vogliono, mentre tutti gli altri possono accedere solo senza modificare e nessuno può eseguire il file, nemmeno il proprietario. Questa è l'impostazione ideale per i file che sono accessibili pubblicamente perché bilancia la flessibilità con la sicurezza.

Cosa significa Chmod 755?

Impostare le autorizzazioni di un file su 755 è fondamentalmente la stessa cosa del 644, eccetto che tutti hanno anche i permessi di esecuzione. Questo è principalmente utilizzato per le directory accessibili pubblicamente perché è necessario il permesso di esecuzione per poter essere modificato in una directory.

Cosa significa Chmod 555?

Impostare le autorizzazioni di un file su 555 fa in modo che il file non possa essere modificato da nessuno tranne il superutente del sistema (ulteriori informazioni sul superutente Linux Che cos'è SU e perché è importante usare Linux in modo efficace? Importante per l'utilizzo di Linux in modo efficace L'account utente Linux o root è uno strumento potente che può essere utile se usato correttamente o devastante se usato in modo spericolato. Diamo un'occhiata al motivo per cui dovresti essere responsabile quando usi SU. Questo non è comunemente usato come 644, ma è comunque importante sapere perché l'impostazione di sola lettura impedisce modifiche accidentali e / o manomissioni.

Cosa significa Chmod 777?

L'impostazione delle autorizzazioni di un file su 777 consente a chiunque di fare tutto ciò che desidera con il file. Questo è un enorme rischio per la sicurezza, specialmente sui server web! Letteralmente chiunque può accedere al file, modificarlo come preferisce ed eseguirlo sul sistema. Puoi immaginare il danno potenziale se un utente malvagio ci mette le mani sopra.

Come usare Chmod su Linux

Il comando chmod ha un formato semplice:

chmod [permessi] [file]

Le autorizzazioni possono essere fornite in notazione numerica, che è il formato migliore da utilizzare quando si desidera assegnare autorizzazioni specifiche per tutte le classi:

chmod 644 example.txt

Le autorizzazioni possono anche essere fornite in notazione simbolica, utile quando si desidera solo modificare le autorizzazioni di una particolare classe. Per esempio:

chmod u = rwx esempio.txt chmod g = rw esempio.txt chmod o = rw esempio.txt

È possibile modificare le autorizzazioni per più classi, come questo esempio che imposta il proprietario in lettura / scrittura / esecuzione ma il gruppo e altri da leggere / eseguire:

chmod u = rwx, g = rw, o = rw example.txt

Quando assegni le stesse autorizzazioni a più classi, puoi combinarle:

chmod u = rwx, go = rw example.txt

Ma la bellezza dell'uso della notazione simbolica brilla quando si desidera solo aggiungere o rimuovere l'autorizzazione per una determinata azione per una particolare classe.

Ad esempio, questo aggiunge il permesso di esecuzione per il proprietario del file:

chmod u + x esempio.txt

E questo rimuove le autorizzazioni di scrittura ed esecuzione per altri utenti:

chmod o-wx esempio.txt

Infine, se si desidera applicare un particolare set di permessi a tutti i file e le cartelle all'interno di una particolare directory (ad esempio un chmod ricorsivo), utilizzare l'opzione -R e selezionare una directory:

chmod -R 755 directory_esempio

Mentre il comando chmod sembra un po 'pazzo a prima vista, è in realtà abbastanza semplice e del tutto logico. Se capisci quanto sopra, hai praticamente padronanza di chmod!

Ulteriori informazioni su Mastering Linux

Comandi come chmod, chown e chgrp sono solo la punta dell'iceberg di Linux. Se sei nuovo di zecca per il sistema operativo, ti consigliamo di dare un'occhiata a questi trucchetti per i neofiti di Linux così come questi comandi di Linux che non dovresti mai eseguire.

Ma soprattutto, farebbe meglio a dare un'occhiata alla nostra esauriente guida per principianti su Ubuntu e Linux Ubuntu: Guida per principianti Ubuntu: Guida per principianti Sei curioso di sapere su Ubuntu, ma non sai da dove iniziare? Tutto ciò di cui potresti aver bisogno per iniziare con l'ultima versione di Ubuntu è proprio qui, scritto in un inglese semplice e comprensibile. Leggi altro, che ti insegnerà tutto ciò che devi sapere per iniziare e familiarizzato abbastanza da sentirti a tuo agio.

Scopri di più su: comandi di Linux.