Unnikked - Esperienze personali in campo informatico

Come impostare i permessi ai file con “chmod”

I file e le cartelle in Linux possono avere tre tipi di permessi: lettura (‘r’), scrittura (‘w’) ed esecuzione (‘x’). Ogni permesso può essere “attivo” o “inattivo” per ogni categoria di utenti: il proprietario del file o della cartella, gli altri utenti nello stesso gruppo del proprietario,  o tutti gli altri.

I file

Per determinare la modalità di un particolare file, si usa il comando ls -lg nomefile. Questo comando produrrà un messaggio simile al seguente:

-rwxr-x--x 1 propietario gruppo 2300 Jul 14 14:38 nomefile

La stringa di 10 caratteri sulla sinistra mostra la modalità. Il carattere iniziale (‘‘ in questo caso) indica la tipologia del file. Il carattere ‘-‘ indica che il file è un normale file. Il carattere ‘d‘ significa che è una directory. I caratteri che vanno da 2 a 4 sono, rispettivamente, ‘r‘, ‘w‘ o ‘x‘ se il corrispondente permesso è abilitato oppure ‘‘ se il permesso è disabilitato. I caratteri che vanno da 5 a 7 similmente rappresentano i permessi per il gruppo; i caratteri che vanno da 8 a 10 per tutti gli altri. La seconda stringa mostra il numero di link che puntano al file. La terza stringa identifica il proprietario del file e la quarta stringa dice in quale gruppo è il proprietario del file.

Per cambiare la modalità di un file, usa il comando chmod. La forma generale è:

chmod X@Y file1 file2 ...

dove: X è una qualsiasi combinazione delle lettere ‘u‘ (per il proprietario), ‘g‘ (per il gruppo), ‘o‘ per gli altri, ‘a‘ (per tutti); @ può essere sostituito con ‘+‘ per aggiungere permessi, ‘‘ per rimuovere permessi, o ‘=‘ per assegnare un permesso assoluto; e Y è una qualsiasi combinazione di `r‘, `w‘, `x‘. Eccone alcuni esempi

chmod u=rx file
chmod go-rwx file
chmod g+w file
chmod a+x file1 file2
chmod g+rx,o+x file

Cartelle

Lo schema dei permessi descritti sopra si applica anche alle cartelle. Per una cartella, chiunque abbia il permesso in ‘lettura‘, può elencare i file usando il comando ls: chiunque abbia il permesso in ‘scrittura‘ può creare ed eliminare file in tale cartella; chiunque abbia il permesso di ‘esecuzione‘ può usare un file o una sotto cartella. Per verificare la modalità di una cartella:

ls -dl dir ... mostra i permessi per la cartella (cartelle) specificata (specificate)
ls -al dir ... mostra i permessi di tutti i file contenuti nella cartella (cartelle) specificata (specificate) (includendo anche la directory corrente '.')

Se non è specificata nessuna cartella, vengono elencati tutti i file presente nella cartella corrente. Il risultato sarà qualcosa di simile:

drwx------12 fred 592 Jul 11 13:46 .
drwxr-xr-x24 root 1424 Jul 10 13:07 ..

Il carattere iniziale ‘d‘ indica che è una cartella. Il nome ‘.‘ si riferisce alla cartella corrente. Il nome ‘..‘, si riferisce alla cartella genitore della cartella corrente. Perciò mostra sempre i permessi per la cartella corrente è quella di provenienza.