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 GNU/Linux: ext2fs (EXTended 2 FileSystem) nel Manuale di riferimento, che descrive questo argomento più in dettaglio.

La prima e più evidente differenza è legata alla presenza degli utenti. In un sistema Linux, ciascun utente ha una sua cartella (nota come la sua directory home), ma questo non è tutto: su un sistema Unix, ogni file è di proprietà esclusiva di un utente e di un gruppo. Pertanto, non solo un utente ha la sua home directory, ma è anche il proprietario dei suoi file nel senso più stretto del termine.

A ogni file, inoltre, sono associati dei permessi che solo il proprietario può modificare. 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 Read (r) "lettura". Per un file, questo permesso consente di leggerne il contenuto; per una directory, di elencare i file che essa contiene, se e solo se per la stessa directory è assegnato anche il permesso execute (esecuzione).

  2. Permesso Write (w) "scrittura". Per un file, questo permesso consente di modificarne il contenuto. Per una directory, consente di modificare e cancellare i file contenuti in essa: questo è possibile anche se non si è il proprietario della directory, basta esserlo del file che si vuole modificare o cancellare;

  3. Permesso eXecute (x) "esecuzione". Per un file (ad esempio per un programma o un file batch), questo permesso consente di lanciarlo in esecuzione; di conseguenza, solo i file eseguibili dovrebbero avere questo permesso. Per una directory, questo permesso consente di attraversare la stessa, cioè spostarsi dentro o attraverso di essa.

È possibile combinare a volontà questi permessi: come proprietari di un file, ad esempio, potete consentire solo a voi stessi di leggerlo, proibirlo a tutti gli altri utenti, e impedire ogni altro uso del file; 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 queen    users           0 Jul  8 14:11 un_file
drwxr-xr--   2 darth    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 attribuirselo.

Infine, dobbiamo menzionare un'ultima particolarità relativa ai nomi dei file. Infatti questi sono molto meno limitati e molto più flessibili rispetto a quanto avviene sotto Windows:


Tux on Star from MandrakeSoft Linux è un trademark registrato di Linus Torvalds. Tutti gli altri copyright e trademark appartengono ai rispettivi proprietari.
A meno che non sia specificato diversamente, tutto il contenuto di queste pagine e tutte le immagini sono Copyright MandrakeSoft S.A. e MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/