Keywords: guide

Next: Statistiche del sistema Up: Piccoli programmi potenti Previous: La potenza di Unix

# Operazioni sui file

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