Next: Statistiche del sistema
Up: Piccoli programmi potenti
Previous: La potenza di Unix
In aggiunta ai comandi come cd, mv e rm che avete imparato
nel capitolo , ci sono altri comandi che operano sui file
ma non sui dati in essi contenuti. Questi sono, tra gli altri, touch, chmod, du e df. Tutti questi comandi non si preoccupano di cosa c'è nel file--cambiano solamente alcune delle cose che UNIX ricorda
relativamente al file.
Ecco alcuni degli elementi che vengono manipolati da questi comandi:
- Il time stamptime stamp. Ogni file ha tre date
ad esso associate:7.2
la data di creazione (quando è stato
creato il file), la data di ultima modifica (quando il file ha subìto
l'ultimo aggiornamento) e la data dell'ultimo accesso (quando il file è
stato letto l'ultima volta).
- Il proprietario. Ogni file in UNIX è di proprietà di un utente del
sistema.
- Il gruppo. Ogni file ha anche un gruppo di utenti a cui è associato: quello
più comune per i file utente è chiamato users, ed è
generalmente condiviso da tutti gli account utente del sistema.
- I permessi . Ogni file ha permessi (a volte chiamati
``privilegi'') associati ad esso, che comunicano a UNIX chi può
accedere a
quel file o modificarlo o, in caso di un programma, eseguirlo. Ognuno
di questi permessi
può essere impostato separatamente per il proprietario, il gruppo e tutti
gli altri utenti.
touch file1 file2 ...fileN
touch aggiorna i time stamp dei file elencati nella linea di comando
all'ora corrente. Se un file non esiste, touch lo creerà vuoto. È
anche possibile specificare la data che touch deve impostare per i
file--consultate la pagina man di touch.
chmod [-Rfv] modalità file1 file2 ...fileN
Il comando usato per cambiare i permessi di un
file è
chmod, abbreviazione di change mode. Prima di
andare a spiegare come usare il comando, parliamo di quali permessi ci sono
in Unix: ogni file ha un gruppo di permessi associati ad esso, che
dicono a UNIX se il file può essere letto, modificato o eseguito
come programma (nel prossimo paragrafo parlerò di come l'utente
li può impostare.
Ogni programma eseguito da un utente ha gli
stessi permessi dell'utente stesso; questo può essere un problema di
sicurezza se
non sapete cosa fa un particolare programma).
UNIX riconosce tre tipi di persone: prima il proprietario del
file (e la persona autorizzata ad usare chmod su quel file).
Secondo, il gruppo. Il gruppo
di molti dei vostri file potrebbe essere ``users'', che indica gli
utenti
normali del sistema (per vedere il gruppo di un particolare file, usare
ls -l file). Poi c'è chiunque altro non sia il
proprietario e
non sia membro del gruppo, appropriatamente chiamato ``others''
(``altri'').
Così un file potrebbe avere i permessi di lettura e scrittura per il
proprietario, di lettura per il gruppo e nessun permesso per gli
altri. Oppure,
per altre ragioni, un file potrebbe essere leggibile/scrivibile per
il
gruppo e gli altri, ma non per il proprietario!
Proviamo ad usare chmod per cambiare un po' di permessi. Prima, create
un nuovo file usando cat, emacs o qualsiasi altro
programma. Normalmente dovreste riuscire a leggere e scrivere questo
file (i permessi dati agli altri utenti variano a seconda di come è
impostato il sistema e il vostro account). Assicuratevi di poter leggere il
file usando cat. Adesso proviamo a togliere il vostro permesso di
lettura usando chmod u-r nomefile (il parametro u-r
si legge ``user meno read'', cioè toglie all'utente - user - il
permesso di lettura - read); se adesso
tentate di leggere
il file, otterrete l'errore di Permission denied (accesso negato)!
Aggiungete il permesso di lettura con chmod u+r nomefile.
I permessi delle directory usano la stessa
struttura: lettura, scrittura ed esecuzione, ma agiscono un po'
diversamente. Il permesso di lettura consente all'utente (o gruppo o altri)
di leggere la directory--cioè di elencare i nomi dei file. Il
permesso di scrittura
consente all'utente (o gruppo o altri) di aggiungere o rimuovere file. Il
permesso di esecuzione consente all'utente di accedere ai file della
directory o di qualsiasi sottodirectory (se un utente non ha il permesso di
esecuzione in una directory, non può farci neanche cd!).
Per usare chmod, sostituite modalità con quello che volete
modificare, user (proprietario), group (gruppo), other
(altri) o all (tutti) e cosa farci (cioè usate il simbolo + per
aggiungere il permesso, il simbolo - per toglierlo oppure il simbolo
= per specificare esattamente i permessi da assegnare). I possibili
permessi da aggiungere sono read (lettura), write (scrittura) ed
execute (esecuzione).
L'opzione R di chmod cambia i permessi di una directory e di
tutti i file e sottodirectory di quella directory (`R' sta per
ricorsiva). L'opzione
f forza chmod a provare a cambiare i permessi, anche se
l'utente non è il proprietario del file (se chmod ha l'opzione f, non stamperà messaggi di errore quando fallisce nel tentativo di
modificare i permessi di un file). L'opzione
v rende chmod
prolisso--spiegherà tutto quello che sta facendo.
Next: Statistiche del sistema
Up: Piccoli programmi potenti
Previous: La potenza di Unix
Eugenia Franzoni
1998-09-29