Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

La speranza cessa di essere felicit? quando ? accompagnata dall'impazienza.

John Ruskin 

Sondaggio:

Quale auto per non passare inosservati?

Jaguar
Mercedes
Ferrari
Maserati
Bmw
AlfaRomeo
Bugatti

visualizza risultati


 

La potenza di Unix: operazioni sui file

La potenza di UNIX è nascosta in piccoli comandi che non sembrano molto utili se usati da soli, ma che combinati con altri comandi (direttamente o indirettamente) rendono il sistema più potente e flessibile della maggior parte degli altri sistemi operativi. I comandi di cui vi parlerò in questo capitolo sono sort, grep, more, cat, wc, spell, diff, head e tail. Sfortunatamente quello che fanno non si capisce immediatamente dai loro nomi. Vediamo ogni programma separatamente e poi alcuni esempi di come usarli insieme.

In aggiunta ai comandi come cd, mv e rm che avete imparato nei capitoli precedenti, 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 stamp. Ogni file ha tre date ad esso associate: 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.

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2022 Cataldo Sasso