Comprendere le autorizzazioni di Linux e l'utilizzo di chmod

Ho seguito un corso su Linux negli ultimi mesi e un aspetto di Linux che mi ha sempre confuso era il modo in cui le autorizzazioni funzionavano. Ad esempio, caricando un file sul mio server web una volta e ricevendo un errore, il mio host web mi ha detto di modificare le autorizzazioni del file su 755.

Non avevo idea di cosa significasse, anche se la modifica delle autorizzazioni risolveva il problema. Ora ho capito che i permessi di Linux non sono poi così complicati, devi solo capire il sistema. In questo articolo, parlerò delle autorizzazioni Linux su un livello superiore e mostrerò come utilizzare il comando chmod per modificare le autorizzazioni per file e cartelle.

Permessi e livelli di Linux

In Linux, ci sono fondamentalmente tre permessi di cui dovrete normalmente preoccuparvi: leggere, scrivere ed eseguire. Tutti e tre di questi sono abbastanza auto-esplicativi. Ora quando queste autorizzazioni vengono applicate a un file, vengono applicate a livelli.

Ci sono tre livelli di permessi in Linux: proprietario, gruppo e altro. Il proprietario è l'utente proprietario del file / cartella, il gruppo include altri utenti nel gruppo del file e altro rappresenta solo tutti gli altri utenti che non sono il proprietario o nel gruppo.

Leggere, scrivere ed eseguire sono rappresentati come caratteri simbolici o come numeri ottali. Ad esempio, se si esegue ls -l in una directory con alcuni file, verrà visualizzata la rappresentazione simbolica dei caratteri delle autorizzazioni.

Le autorizzazioni sono scritte come segue: il primo bit è un trattino o la lettera d. trattino significa che è un file e d sta per directory. Si noti che il primo bit può anche essere un l se il nome del file è un collegamento. Successivamente, ci sono tre gruppi di tre bit. Il primo bit in ogni gruppo è in lettura, il secondo in scrittura e il terzo in esecuzione. I primi tre bit sono per il proprietario, i secondi tre bit sono per il gruppo e il terzo tre bit per gli altri. Ecco una spiegazione più visiva.

Se vedi un trattino al posto di una lettera, significa che il proprietario, il gruppo o tutti gli altri utenti non hanno questa autorizzazione. Nell'esempio precedente, il proprietario, il gruppo e tutti gli altri hanno letto le autorizzazioni di scrittura ed esecuzione.

Se si guarda l'output dal comando ls -l, si noterà che il mio file di testo pratica ha le seguenti autorizzazioni:

-rw-rw-rw-

Ciò significa che tutti hanno solo i permessi di lettura / scrittura per il file. Ecco un altro esempio:

drwxr - r--

Guardando il primo bit, possiamo vedere che le autorizzazioni sono per una directory. Il proprietario ha permessi di lettura / scrittura / esecuzione, ma il gruppo e gli altri utenti hanno solo il permesso di lettura.

Rappresentazione numerica ottale

Ecco come vengono visualizzate le autorizzazioni in Linux usando i simboli. Il secondo modo per rappresentare le stesse autorizzazioni è usando numeri ottali. Quando in seguito useremo il comando chmod, vedrai che puoi modificare i permessi usando sia i simboli che i numeri ottali.

Quindi come fa Linux a leggere, scrivere ed eseguire usando numeri ottali? Fondamentalmente, assegna un numero a ciascun permesso come mostrato di seguito.

Il permesso di lettura è rappresentato da 4, scritto da 2 ed eseguito da 1. Tutto ciò che devi fare è aggiungerli per ottenere il permesso ottale. Ad esempio, prendiamo l'esempio sopra in cui tutti hanno tutte le autorizzazioni:

-rwxrwxrwx

Il proprietario ha rwx, quindi aggiungeremo 4 + 2 + 1 per ottenere un valore di 7. Facciamo la stessa cosa per il gruppo e la stessa cosa per gli altri. Il valore ottale finale è 777. Diamo un'occhiata all'esempio in cui abbiamo dato solo autorizzazioni di lettura / scrittura:

-rw-rw-rw-

Il primo numero ottale sarà 4 + 2 dato che stiamo aggiungendo leggere e scrivere. Il secondo sarà lo stesso del terzo numero ottale. Qui abbiamo un valore ottale finale di 666.

Quindi ora proviamo nell'altro modo. Diciamo che vogliamo sapere quali permessi 755 rappresenta? Bene, è abbastanza facile capire se si scomposizione per numeri individuali. Il primo numero è 7, che possiamo ottenere solo aggiungendo 4 + 2 + 1, il che significa che il proprietario ha il permesso di lettura / scrittura / esecuzione. Cinque possono essere ottenuti aggiungendo 4 + 1, il che significa che il gruppo e gli altri utenti hanno le autorizzazioni di lettura ed esecuzione.

Si spera che questa sia una buona spiegazione su come rappresentare i permessi in Linux usando i numeri ottali. È abbastanza lineare nel complesso.

Utilizzo di chmod per modificare le autorizzazioni

Ora che capiamo come leggere i permessi, parliamo di come possiamo cambiarli. L'utilità più semplice da utilizzare per questo scopo è il comando chmod. Ecco come funziona. Il modo migliore per spiegare il comando è quello di fare un esempio.

Iniziamo con le autorizzazioni di cui abbiamo parlato sopra, vale a dire:

-rw-rw-rw-

Se volessimo aggiungere il permesso di esecuzione per il proprietario, il gruppo e l'altro, potremmo farlo in due modi. Potremmo usare il metodo simbolico o il metodo ottale. Per il metodo simbolico, faremmo quanto segue, come mostrato di seguito:

Il comando esatto è

chmod a + x nomefile

La sintassi è la seguente: la lettera o le lettere che rappresentano il proprietario (u), gruppo (g), altro (o) o tutti (un) seguito da a + per aggiungere permessi o a - per togliere le autorizzazioni e quindi la lettera per il permesso (r per leggere, w per scrivere e X per l'esecuzione).

Nell'esempio sopra, ho aggiunto il permesso di esecuzione per tutti gli utenti. Il risultato come puoi vedere nello screenshot qui sopra è un X per proprietario, gruppo e altro. Ora diciamo che volevo rimuovere le autorizzazioni di scrittura ed esecuzione solo per il gruppo e gli altri utenti.

Come puoi vedere qui, ho usato il seguente comando per realizzare questo:

nome file chmod go-wx

Dal momento che voglio cambiare i permessi per il gruppo e gli altri, uso la lettera g e la lettera o. Voglio rimuovere i permessi, quindi uso il - cartello. Infine, voglio rimuovere le autorizzazioni di scrittura ed esecuzione, quindi lo uso w e X. Ecco un pratico tavolino per l'utilizzo dei simboli:

Ecco tutto quello che c'è da usare con il metodo dei simboli. Parliamo ora del metodo ottale, che trovo essere un po 'più semplice. Octal è bello perché puoi aggiungere o rimuovere permessi tutto in una volta.

Se iniziamo con le seguenti autorizzazioni su un file, vediamo come possiamo cambiarle usando il metodo ottale:

-rw-rw-rw-

Sopra, puoi vedere che ho usato il seguente comando:

chmod 744 nomefile

Questo in pratica dice che il proprietario ottiene il permesso di lettura / scrittura / esecuzione e il gruppo e l'altro ottiene solo il permesso di lettura. Come puoi vedere, è facile aggiungere o rimuovere permessi con un semplice comando. Continuiamo e dì che voglio cambiare di nuovo i permessi.

Ora ho usato il seguente comando, ancora molto semplice:

chmod 640 nomefile

Qui abbiamo dato al proprietario le autorizzazioni di lettura / scrittura, il gruppo ha letto solo le autorizzazioni e l'altro gruppo non ha le autorizzazioni. Si utilizza uno zero per indicare nessuna autorizzazione. Piuttosto semplice, eh?

In conclusione, questa è una panoramica molto semplice dei permessi di Linux e può essere molto più complicata di questa, ma per i principianti, è un buon punto di partenza. Pubblicherò altri articoli su permessi più avanzati in futuro. Se avete domande, sentitevi liberi di commentare. Godere!