I permessi numerici su Linux

Sul sistema operativo Linux, e in generale su Unix, ogni file è associato a dei permessi di lettura (r), scrittura (w) ed esecuzione (x).

Un esempio pratico

-rwxrwxrwx

A parte il primo carattere che indica la tipologia del file, la stringa dei permessi è suddivisa in tre sottosequenze di caratteri che rappresentano i permessi dell'utente, del gruppo e degli altri utenti.

Nota. L'assenza del permesso è indicata con il simbolo del trattino (-) al posto della relativa lettera). Se non sono chiari questi concetti, consiglio di leggere prima l'introduzione ai permessi Linux.

Come calcolare il permesso numerico su Linux

La stessa informazione può essere rappresentata in forma numerica, sostituendo per ogni posizione il carattere (rwx) con 1 e il carattere (-) con 0.

Ad esempio, tralasciando la prima posizione, la stringa dei permessi è la seguente:

rwx rwx rwx

Posso riscrivere la stringa in modo numerico nel seguente modo:

111 111 111

Ogni componente della sequenza è un numero binario.

decimale binario stringa dei permessi significato
0 000 --- nessun permesso
1 001 --x esecuzione
2 010 -w- scrittura
3 011 -wx scrittura, esecuzione
4 100 r-- lettura
5 101 r-x lettura, esecuzione
6 110 rw- lettura, scrittura
7 111 rwx lettura, scrittura, esecuzione

Esempio. La sequenza 111 è il numero 7 ed è il numero più alto rappresentabile in forma binaria con tre cifre.

Ora sostituisco a ogni componente il relativo numero decimale o ottale, il risultato è sempre lo stesso, ottenendo la seguente sequenza

7 7 7

Quindi, scrivere 777 oppure rwxrwxrwx è la stessa cosa.

Ho così ottenuto la rappresentazione numerica del permesso.

A che serve?

I permessi numerici su Linux sono più sintetici. Quindi, sono un modo più rapido per impostare o cambiare i permessi su un file o una directory.

Come modificare i permessi con chmod

Per cambiare i permessi di un file tramite il codice numerico, utilizzo il comando chmod ( change modality ).

Al posto della stringa dei caratteri "rwxrwxrwx" scrivo il numero 777.

chmod 777 nomefile

Il risultato finale è sempre lo stesso.

Al file sono assegnati i permessi di lettura (r), scrittura (w) ed esecuzione (x) a tutti, all'utente, al gruppo e a tutti gli altri utenti (rwxrwxrwx).

Attenzione. Per motivi di sicurezza i permessi 777 e 666 andrebbero sempre evitati, perché consentono a qualsiasi utente del sistema di modificare il contenuto del file. E' preferibile assegnare i permessi più alti tramite i gruppi.

Esempi pratici

Ecco alcuni esempi pratici di utilizzo dei permessi numerici con chmod

Chmod 700

Se volessi autorizzare soltanto l'utente alla lettura, scrittura ed esecuzione, dovrei scrivere nel seguente modo:

chmod 700 nomefile

Cmod 760

Per autorizzare anche il gruppo alla lettura e scrittura ( 110 ) devo scrivere il numero 6 nella seconda cifra.

chmod 760 nomefile

Chmod 761

Per autorizzare anche gli altri utenti soltanto alla lettura (100) devo scrivere il numero 4 nella terza cifra.

chmod 764 nomefile

Chmod 777

Per autorizzare tutti alla lettura, scrittura ed esecuzione (111) devo digitare 7 in ogni posizione.

chmod 777 nomefile

Chmod 644

Per autorizzare l'utente alla lettura e scrittura (110), il gruppo e gli altri utenti soltanto alla lettura (100) devo scrivere la modalità 644.

chmod 644 nomefile

E così via.

Ho pubblicato un elenco completo delle modalità in un'altra pagina.

Nota. Per ricordarsi le modality più frequenti, è utile memorizzare che il solo permesso di lettura (100) è 4, il solo permesso di scrittura (010) è 2 e il solo permesso di esecuzione (001) è 1.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

I permessi su Linux

  1. Cosa sono i permessi
  2. Come vedere i permessi di un'utente
  3. Come cambiare i permessi su un file o directory
  4. I permessi numerici
    ( es. 777, 644, ecc. )
  5. Le modalità speciali
  6. I comandi chmod
  7. La maschera dei permessi (umask)

FAQ