Gestione avanzata di
files e directory
Tipi di file
Come detto precedentemente, per visualizzare l’elenco completo dei file è necessario usare il comando ls.
Il comando accetta varie opzioni come -a, -l o -i. L'opzione -l (l sta per long) e permette di visualizzare alcuni dettagli importanti di ciascun file.
Ad esempio usando ls -l , si ottiene:
-rw-r--r-x 1 max utenti 207 Feb 20 11:55 file1
-rwxr--r-- 1 max utenti 120 Feb 21 10:15 file2
-r--r--r-- 1 max utenti 558 Feb 12 10:22 file3
-rw-r-x--- 1 max utenti 210 Feb 18 12:10 file4
Distinguiamo i dati forniti:
Il nome del file e l'ultima informazione presente in ogni riga.
Il primo carattere indica il tipo di file, puo essere un trattino o una 'd'. Il trattino indica un comune file, mentre la 'd' indica che si tratta di una directory.
Tipi di file possibili
I tipi di file possibili:
NB: Già, perché persino le periferiche, le connessioni e i servizi all’interno del sistema sono viste come file! Con tutti i vantaggi e svantaggi del caso! :)
Le altre caratteristiche dei file
ESEMPIO:
-rw-r-x--- 1 max utenti 210 Mar 18 12:10 file4
rw- r-x --- Questi nove caratteri, successivi a quello del tipo, indicano i permessi di accesso al file.
Scusi.. Permesso?!
Noi sappiamo che, un file può essere letto o visualizzato solo se si possiede il permesso in lettura. Può essere sovrascritto, cancellato o modificato se si possiede il permesso in scrittura e può essere eseguito solo se si possiede il permesso di esecuzione.
Parliamo di permessi di accesso ai file, qualsiasi file può essere acceduto o meno da 3 categorie di utenti:
Questi permessi non sono altro che una terna di caratteri, per ogni categoria utenti composta da:
r, w, x, -
ESEMPIO:
-rw-r-x--- 1 max utenti 210 Mar 18 12:10 file4
Isoliamo i permessi.
La terna dei permessi
rw- r-x ---
Abbiamo detto che i permessi di accesso al file sono 9 caratteri, suddivisi in blocchi di 3, uno per gruppo.
Ogni terna può contenere i caratteri '-', 'r', 'w' o 'x'. Il carattere '-' disabilita un permesso.
Ricapitolando!
Quindi:
NotaBene: L'utente root o supervisore è il proprietario di tutti i file del sistema, pertanto può leggere, scrivere ed eseguire qualsiasi file. Inoltre l'utente root può modificare i permessi dei file in modo da allargare o restringere l'accesso ad alcuni file agli altri utenti del sistema.
Comando modifica permessi
Per modificare i permessi di accesso di un file occorre usare il comando chmod. Tale comando accetta due argomenti: un elenco di variazioni di permessi ed un elenco di file sui quali agire.
Per abilitare un permesso occorre usare il simbolo '+' affianco al tipo di permesso che si desidera modificare. Ad esempio la stringa '+w' abilita il permesso di scrittura mentre la stringa '+x' abilita il permesso di esecuzione. Al contrario per disabilitare un permesso occorre usare il simbolo '-'. È possibile usare una qualsiasi combinazione di questi simboli.
Ad esempio, il comando:
chmod +w-x dati
abilita la scrittura e disabilita l'esecuzione del file 'dati' per tutti gli utenti.
Per specificare la tipologia di utenti ai quali abilitare o disabilitare dei permessi esistono 3 simboli: 'u', 'g' ed 'o'. Il simbolo 'u' sta per user ed indica il proprietario del file, il simbolo 'g' sta per group ed indica il gruppo di utenti del quale fa parte il proprietario ed infine 'o' sta per other, cioè tutti gli altri utenti.
Il simbolo che specifica la categoria di utenti per i quali si desidera modificare i permessi, va specificato prima degli altri simboli.
Altre cose da sapere su chmod
Per abilitare più permessi non occorre ripetere il simbolo '+' più volte, così come non è necessario per il simbolo '-'.
Ad esempio per abilitare sia la lettura che la lettura, si può scrivere +rw mentre per abilitare in lettura e disabilitare la scrittura e l'esecuzione occorrerà scrivere +r-wx e così via.
Se non viene specificata alcuna categoria di utenti si intende modificare i permessi per tutte le categorie. Per specificare tutte le categorie si può usare anche il simbolo 'a' , tale simbolo infatta sta per all, cioè tutti.
Notare che tra i vari simboli non esiste alcuno spazio, occorre infatti scrivere tutti i simboli uno affianco all'altro senza interporre degli spazi: in caso contrario il sistema risponderà con un messaggio di errore.
Maschere binarie
Il modo di specificare i permessi di accesso che utilizza i simboli r, w e x viene definito simbolico, ma non è l'unico modo possibile, esiste infatti un altro modo definito assoluto. Le cosidette maschere binarie.
Il vantaggio delle maschere binarie è la possibilità di cambiare tutti i permessi usando un solo comando, lo svantaggio è minore semplicità d'uso. Infatti, in una maschera binaria le tre categorie di utenti ossia le tre terne di simboli diventano 3 cifre in formato ottale, nel senso che ciascuna categoria è rappresentata da un numero in base 8.
Per rappresentare le 3 terne corrispondenti alle tre categorie di utenti sono sufficienti 3 cifre ottali. La prima cifra ottale infatti e relativa al proprietario del file, la seconda al gruppo a cui appartiene e la terza a tutti gli altri utenti del sistema.
Ad esempio, per abilitare tutti i permessi al proprietario del file 'dati' e permettere a tutti gli altri utenti solo la lettura e l'esecuzione occorrerà usare il comando chmod in questo modo:
chmod 755 dati
1 | 001 | --x |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r-- |
5 | 101 | r-x |
6 | 110 | rw- |
7 | 111 | rwx |
Di seguito, una tabella di specifiche:
La cifra ottale 0 corrisponde alla cifra binaria 000 mentre la cifra ottale 4 ad esempio, corrisponde alla cifra binaria 100.
Permessi di accesso alle directory
Come già detto le directory sono anch’ esse dei file speciali. Conseguentemente, è evidente che è possibile specificare i permessi di accesso anche per le directory. Esistono comunque delle sottili differenze..
Esempio
/home/mau/guida.html
Cambiare il proprietario di un file
Anche se un utente può accedere ad un file, solo il proprietario può cambiarne i permessi. Se si vuole quindi cedere il controllo di un file ad un altro utente, occorre cambiarne il proprietario. Per cambiare il proprietario di un file occorre usare il comando chown. Chown sta per 'change owner', cioè cambia proprietario.
Il comando chown accetta due argomenti il primo che è il nome del nuovo proprietario e il secondo che è il nome di un file o un elenco di file. Ad esempio per cambiare il proprietario di guida.htm occorre che il proprietario scriva:
chown francesca guida.html
Allo stesso modo è possibile cambiare il gruppo su un file utilizzando questa volta il comando chgrp. Il comando chgrp sta per 'change group' cioè cambia gruppo ed accetta 2 argomenti: il nuovo gruppo ed il file (o l'elenco di file) che deve essere modificato.
Attenzione: i comandi chmod, chown e chgrp non hanno effetto su filesystem di tipo FAT (opzione -t vfat del comando mount).
Questo perchè il filesystem di tipo FAT non supporta i permessi sui file come Linux. Quindi, nel caso si abbia un sistema con dual boot dove convivono Linux e Windows nello stesso disco e si tenti di eseguire il comando chmod, si otterrà il messaggio di errore: 'operation not permitted'.
- In altre parole una partizione Windows avrà root come proprietario di default.
Esercizio 1
Esercizio 2
Creare nella home directory una cartella pippo.
• Dentro la cartella pippo, creare due file: pluto e paperino.
• Revocare i permessi di read alla cartella pippo.
• Che tipo operazioni è possibile eseguire nella directory? Quali sono quelle negate?
• Revocare i permessi di execute alla cartella pippo.
• Che tipo operazioni è possibile eseguire nella directory? Quali sono quelle negate?