2.2. Principi di base riguardo i file

I file sono un altro campo in cui GNU/Linux è sensibilmente diverso rispetto a Windows e a molti altri sistemi operativi. Qui vedremo le differenze più evidenti, per informazioni più approfondite consultate il capitolo Il filesystem di Linux nel Manuale di riferimento, che descrive questo argomento più in dettaglio.

La differenza principale è una diretta conseguenza del fatto che GNU/Linux è un sistema multiutente: ogni file è proprietà esclusiva di un utente e di un gruppo. Quando abbiamo accennato agli utenti, poco fa, non abbiamo citato un fatto importante: ogni utente ha una sua cartella (nota come la sua directory home), ed è il proprietario di questa directory e di tutti i file che lui stesso creerà in futuro. Solo lui, nessun altro.

Tutto questo non avrebbe grande utilità, tuttavia, se si limitasse al solo concetto di proprietà dei file. Infatti c'è dell'altro: in quanto proprietario di un file, l'utente può impostare dei permessi che riguardano il file stesso. Questi permessi sono distinti in tre diverse categorie: permessi del proprietario del file, di qualsiasi utente membro del gruppo associato al file (il cosiddetto owner group) escluso l'utente che ne è il proprietario, e gli altri, ovvero qualsiasi utente che non rientri nei primi due casi.

Ci sono tre diversi permessi:

  1. Permesso di lettura Read (r): per un file, questo permesso consente di leggerne il contenuto; per una directory, di elencarne il contenuto (cioè i file che essa contiene).

  2. Permesso di scrittura Write (w): per un file, questo permesso consente di modificarne il contenuto. Per una directory, permette a un utente di modificare e cancellare i file che essa contiene, anche se non è il proprietario di quei file.

  3. Permesso di esecuzione eXecute (x): per un file, questo permesso consente di lanciarlo in esecuzione; di conseguenza, normalmente solo i file eseguibili dovrebbero avere questo permesso. Per una directory, questo permesso consente di attraversarla, cioè di spostarsi dentro o attraverso di essa. Notate che questa caratteristica è indipendente dal permesso di lettura: potrebbe capitare che abbiate il permesso per attraversare una directory, ma che non possiate leggerne il contenuto!

È possibile combinare a volontà questi permessi: come proprietari di un file, ad esempio, potete consentire solo a voi stessi di leggerlo e proibirlo a tutti gli altri utenti. Potete anche fare l'opposto, anche se a prima vista non è molto logico... Se siete proprietari del file, potete anche cambiarne il gruppo di appartenenza, purché siate membri del nuovo gruppo, e addirittura privarvi della proprietà del file (ovvero indicare un nuovo proprietario). Naturalmente, se lo fate vi priverete anche di ogni diritto sul file...

Facciamo un esempio pratico con un file e una directory. La schermata qui sotto mostra i risultati del comando ls -l impartito da una linea di comando:

$ ls -l
total 1
-rw-r-----   1 pingusa    users           0 Jul  8 14:11 un_file
drwxr-xr--   2 tuxor    users        1024 Jul  8 14:11 una_directory/
$            

Da sinistra a destra, il significato delle informazioni ottenute digitando ls -l è il seguente:

Diamo un'occhiata più da vicino ai permessi associati a ciascuno di questi file: prima di tutto, saltiamo il primo carattere relativo al tipo di file; per il file un_file abbiamo i seguenti diritti: rw-r------. Questi caratteri vanno interpretati come segue:

Per la directory una_directory, i diritti sono rwxr-xr--, e pertanto:

Ricordate, c'è un'eccezione a questa regola: l'account root può modificare gli attributi (permessi, proprietario e gruppo di appartenenza) di tutti i file, anche se non ne è il proprietario. Questo significa che può anche diventarne proprietario. root può leggere i file per cui non ha il permesso di lettura, attraversare le directory che normalmente non potrebbe attraversare, e così via. E se gli manca un permesso, non deve far altro che assegnarselo...

Infine, vale la pena di notare le differenze relative ai nomi dei file nel mondo Unix rispetto a Windows; sotto Unix, infatti, questi sono molto meno limitati e molto più flessibili rispetto a quanto avviene sotto Windows:

 

 


Tux on Star from MandrakeSoft Linux è un marchio registrato di Linus Torvalds. Tutti gli altri marchi e copyright appartengono ai rispettivi proprietari.
Se non diversamente specificato, i diritti di tutto il contenuto di queste pagine e di tutte le immagini sono proprietà di MandrakeSoft S.A. e MandrakeSoft Inc. 2001.
http://www.mandrakelinux.com/