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