Anatomia di un file

Nei sistemi Linux l'utente ha accesso ad un'unica collezione di oggetti organizzata ad albero, la cui radice è la cosiddetta ``cartella radice'' (root directory), identificata dal carattere ``/'', all'interno della quale risiedono tutti i file e le cartelle del nostro sistema. Se facessimo elencare gli attributi di un file al sistema vedremmo qualcosa del tipo:

-rw-r-r- 1 mario staff 0 Aug 23 12:56 prova
Possiamo osservare che gli attributi del file sono raggruppati in sette colonne a partire da sinistra verso destra. La prima colonna rappresenta il tipo di file e i permessi ad esso associati: il primo carattere individua il tipo di file, che in questo caso è un file normale, essendoci il trattino.

I rimanenti nove caratteri costituiscono appunto i permessi associati al file. I permessi sono, nell'ordine, di tre tipi:

r
(read) sta per lettura
w
(write) sta per scrittura
x
(execute) sta per esecuzione
I primi tre caratteri definiscono i permessi accordati all'utente proprietario del file: nell'esempio sono i permessi di lettura e scrittura, mentre il trattino successivo sta a significare che è negato il permesso di esecuzione11. I successivi caratteri definiscono i permessi accordati al gruppo del file: nell'esempio solo la lettura, perchè scrittura ed esecuzione sono sostituiti dal solito trattino. Gli ultimi tre caratteri della prima colonna definiscono i permessi accordati a tutti gli altri utenti (escluso l'utente root, che ha sempre pieno accesso a qualunque risorsa): nell'esempio solo la lettura. Ciò significa che il file ``prova'' può essere modificato, cioè ``scritto'', solo dall'utente mario proprietario del file, mentre tutti gli altri utenti potranno solo limitarsi a leggerne il contenuto. Bisogna dire che il concetto di esecuzione varia a seconda che sia applicato ad un file oppure ad una cartella; nel primo caso indica che si tratta di un codice eseguibile (un programma), nel secondo invece x assume il significato di permesso di accesso alla cartella. Ciò non è da confondere col permesso di lettura, che continua ad essere gestito da r.

La seconda colonna indica il numero di collegamenti effettivi (hard links) al file.

La terza e quarta colonna indicano rispettivamente l'utente e il gruppo cui il file appartiene: nell'esempio sono l'utente mario e il gruppo staff.

La quinta colonna indica le dimensioni in byte del file: zero nel nostro esempio.

La sesta colonna fornisce la data e l'ora in cui il file ha subito l'ultima modifica; infine la settima colonna, come avrete capito, indica il nome attribuito al file (``prova'' nel caso dell'esempio).

In un sistema Debian ci sono numerosi gruppi predefiniti, in aggiunta a quelli che eventualmente possono essere creati dall'amministratore di sistema (root). Nell'elenco seguente trovate molti gruppi predefiniti di Debian, assieme alla loro funzione:

root
associato all'amministratore di sistema
daemon
associato ad alcuni demoni di sistema che scrivono file su disco
bin
mantenuto per ragioni storiche
sys
mantenuto per ragioni storiche
adm
membri di questo gruppo possono leggere numerosi file in /var/log/
tty
associato a tutti i terminali reali e virtuali
disk
accesso a basso livello al disco fisso; equivale praticamente al gruppo root
lp
associato ai demoni di stampa
mail
associato alle caselle di posta in /var/mail/
news
associato ai programmi per gestire i gruppi Usenet
uucp
associato al sottosistema UUCP, ormai in disuso
proxy
associato ad alcuni demoni del servizio di proxy
kmem
vestigia BSD associabile a programmi che leggono la memoria di sistema
dialout
accesso diretto alle porte seriali
fax
membri di questo gruppo possono usare il fax
voice
associato alle segreterie telefoniche via e-mail
floppy
membri di questo gruppo possono usare il lettore di dischetti
tape
membri di questo gruppo possono usare unità a nastro
sudo
associato al programma sudo
(vedere /usr/share/doc/sudo/OPTIONS)
audio
membri di questo gruppo possono usare dispositivi audio del sistema
cdrom
membri di questo gruppo possono usare il masterizzatore/lettore di CD-ROM
dip
membri di questo gruppo possono accedere a programmi come ppp, wvdial e ad una connessione internet
postgres
associato al programma Postgresql
www-data
associato ad alcuni web-server, come ad es. Apache
backup
associato ai programmi di archiviazione dati
operator
associato all'utente operator, l'unico che storicamente poteva fare il login da remoto
list
associato ad alcuni programmi di posta elettronica
irc
associato ad alcuni demoni IRC
src
associato ai file di codice sorgente in /usr/src
gnats
associato all'omonimo programma GNU
shadow
associato al file /etc/shadow, contenente le password cifrate di sistema
utmp
associato al file /var/run/utmp
video
membri di questo gruppo possono usare dispositivi video
camera
membri di questo gruppo hanno accesso alla memoria di una fotocamera collegata
scanner
membri di questo gruppo hanno accesso allo scanner
staff
membri di questo gruppo hanno accesso in lettura e scrittura alle cartelle /usr/local/ e /home/
games
associato a programmi di giochi
users
mantenuto per ragioni storiche
nogroup
associato a demoni che non possiedono alcun file
postfix
associato al server di posta Postfix (se lo avete installato al posto di Exim)
postdrop
associato al server di posta Postfix (se lo avete installato al posto di Exim)
Alcuni gruppi sono associati a determinati programmi detti demoni (daemons); in gergo informatico un demone è un programma che offre servizi agli utenti funzionando senza la connessione ad un terminale. I demoni sono programmi molto comuni nei sistemi tipo Unix e derivati, perciò non c'è da stupirsi se li trovate anche in Debian. Un esempio di demone è il programma cupsd, in perenne attesa di un documento da mandare alla coda di stampa.

I gruppi più importanti per il lettore sono floppy, cdrom, audio, dip, video, dei quali un utente deve far parte per poter usare le tipiche periferiche di un moderno calcolatore: lettore di dischetti, masterizzatore, altoparlanti, modem... Per aggiungere per esempio l'utente mario a questi gruppi inserire12:

# adduser mario floppy

# adduser mario cdrom

# adduser mario audio

# adduser mario dip

# adduser mario video

Da notare che nel comando si può specificare un solo gruppo alla volta. Se siete già membri di questi gruppi il sistema non farà altro che confermarne la vostra appartenenza, mentre in caso contrario eseguirà quanto richiesto.

Mauro Darida 2006-07-25