AFS si basa sul modello client/server.
Client Machine Sono workstation o altre macchine dove gira un software per connettersi ai server (AFS client).
Server Machine E' la macchina che provvede all'accesso ai volumi.
In AFS si distinguono due tipi di software: Client e Server. Le macchine Client AFS sono delle normali stazioni di lavoro con dello spazio disco locale non condiviso dedicato al funzionamento del software Client; su queste macchine sono attivi i demoni AFS Cache Manager che presentano all'utente finale una directory in piu': "/afs". Tutti i file e le directory che costituiscono /afs sono fisicamente presenti sulle macchine File Server di AFS, geograficamente disperse per il mondo. La funzione del Cash Manager locale e' di comunicare con queste macchine e fornire localmente all'utente i file remoti.
Cache Manager
Il processo di cache manager assicura una riduzione del numero di richieste al network del server. Il cache manager richiede i files al server e le copia sulla vostra macchina. Voi lavorate su una copia , non sull'originale , che si trova sul server , al momento della chiusura, o del salvataggio , pensera' il server ha modificare l'originale.
AFS e' strutturato in "celle".
In AFS la cell, e' un insieme di clients e servers.
Possiamo vederla come una struttura ad albero dove la root e' chiamata
/afs , tutte le celle sono visibili al secondo livello dell'albero AFS
e possiamo dare il comando cd (change direct) verso ogni cella, esattamente
come si cambia directory in Unix.
Dal punto di vista dell'utente la directory /afs non differisce da
qualsiasi altra directory Unix. La sostanziale differenza e' nel fatto
che AFS consente uno schema di autorizzazioni piu' raffinato e quindi un
controllo degli accessi piu' selettivo che sulle normali directory Unix.
Generalmente una cella corrisponde al medesimo nome del dominio. Il
DNS (Domain Name System) e' un metodo gerarchico e distribuito di organizzare
lo spazio in Internet. Il DSN raggruppa amministrativamente gli HOST secondo
una catena gerarchica di autorita' che consente di distribuire e di tenere
aggiornati gli indirizzi e altre informazioni.
La nostra cella si chiama enea.it.
Un raggruppamento di cell correlate tra loro viene chiamato "site".
Per passare da una cella ad un'altra si usa il comando cd /afs/cellname.
File Space
Una cella ha un suo proprio File Space e puo' connettersi ai File Space
di altre celle definite in AFS. L'autorizzazione ad accedere al file space
dell'AFS avviene mediante l'assegnazione di un "token" che viene usato
come prova per tutti i file server che l'utente è "authenticated".
Se l'utente non ha un token, AFS lo considera come un utente anonimo
(fa parte del gruppo system:anyuser)
Ogni token ha un periodo limitato di validità, per vedere la
scadenza si può usare il comando:
che fornisce anche il nome dell'utente associato al token e il nome
della cell in cui è valido.
Il valore default viene impostato dall'amministratore di sistema.
Un token può essere rinnovato in qualsiasi momento con il comando:
che, dopo aver richiesto la password dell'utente e averne verificato la correttezza, sostituisce il vecchio token con il nuovo. Questo comando può essere utilizzato anche nel caso in cui il vecchio token stia per scadere e l'utente desideri mandare in esecuzione in background un job molto lungo. Se stiamo usando X windows su una workstation il token e' associato con una sessione sul vostro HOST COMPUTER e l'apertura di altre finestre non abbiamo bisogno di mandare il comando KLOG, perche' siamo sempre autenticati.
Unix divide i dischi fisici in partizioni logiche, AFS divide le partizioni
in sottosezioni chiamate volumi.
Un volume quindi contiene un sottoalbero di directory e di files.
L'accesso a un volume è fornito dal "Mount Point" che punta
alla locazione (macchina server e partizione) del volume; si può
quindi paragonare a una directory di Unix.
I volumi hanno definita una quota e un ACL associato; la quota viene
assegnata dall'amministratore di sistema e rappresenta la quantità
massima di spazio disco che il volume può contenere.
Per esaminare la quota di un volume si usa il comando:
Il comando risponde con il nome del volume che contiene la directory specificata,la quota,la parte usata,la percentuale usata e la percentuale di spazio usata sulla partizione che contiene il volume.
fs lq /afs/enea.it/frascati/info < Volume Name Quota Used % Used Partition frascati.info.readonly 5000 28 1% 80% Le quantita' sono misurate in kilobytes.
AFS usa il meccanismo di KERBEROS e ACL come accesso ai files e directory.
La combinazione tra kerberos e acl provvede ad una superiore sicurezza.
Tale meccanismo è basato su una lista di controllo, chiamata
ACL (Access Control List) che consiste in una lista di utenti con i corrispondenti
diritti di accesso alla directory. Per ogni directory del file system di
AFS viene definita una ACL che viene applicata a tutti i files e sottodirectory
presenti su quella directory.
Tutti i files ereditano i diritti di accesso associati alla directory
madre; se un file viene spostato da una directory ad un'altra, esso acquisisce
i diritti di accesso della nuova directory.
Se viene cambiata l'ACL su una directory, la protezione di tutti i
suoi files viene cambiata.
Quando viene creata una sottodirectory, essa eredita automaticamente
i diritti di accesso della directory madre.
Esistono due tipi di gruppi: quelli chiamati regolari e quelli senza prefisso; i nomi dei gruppi regolari sono formati di 2 parti separate dal carattere :, del tipo:
in cui la prima parte indica il nome del possessore del gruppo mentre
la seconda fornisce il nome del gruppo.
I nomi dei gruppi senza prefisso sono formati solo dalla parte "group-name";
tali gruppi possono essere creati solamente dagli amministratori di sistema.
Generalmente i gruppi vengono creati dagli utenti, tuttavia tre sono
creati automaticamente dal sistema:
La protezione del singolo file dipende dalla combinazione dei diritti specificati nell'ACL e dei diritti di accesso ammessi da Unix che, lo ricordiamo, sono in lettura, in scrittura e in esecuzione. Nell'ACL sono previsti 7 diritti di accesso associati alla directory (quindi a tutti i files e sottodirectory residenti su quella directory) che possono essere suddivisi in 2 livelli:
L'accesso LOOKUP (l) permette al possessore di usare il comando ls
per avere la lista dei nomi dei files e sottodirectory della directory
stessa, ma non di leggerne il contenuto e di esaminare l'ACL relativa a
questa directory.
L'accesso INSERT (i) permette al possessore di aggiungere nuovi files
nella directory o creare nuove sottodirectory.
L'accesso DELETE (d) permette di cancellare files o sottodirectory
dalla directory.
L'accesso ADMINISTER (a) permette di modificare l'ACL . Gli utenti
generalmente possono modificare l'ACL relativa alla propria home directory.
L'accesso READ (r) permette di leggere il contenuto dei files della
directory e di esaminare la lista dei files delle sottodirectory.
L'accesso WRITE (w) permette di modificare il contenuto dei files della
directory e di cambiare i diritti di accesso permessi da Unix con il comando
chmod.
L'accesso LOCK (k) permette di far girare programmi che hanno bisogno
di un uso esclusivo della directory o dei files.
Questi diritti di accesso possono essere combinati fra loro in vari modi, ma le combinazioni più usate sono le seguenti:
l - lookup (comandi ls e cd; check-ACL) r - mostra il contenuto dei files i - crea nuovi file/sottodirectory (create, cp) w - modifica il contenuto dei file, chmod d - rm, mv (per mv deve essere garantita l'operazione di inserimento per la directory di destinazione) k - permesso per programmi di "flock" files nella directory a - cambia l'ACL Esempio: gli ACL nella home directory /afs/enea.it/frascati/info/dangelo di AFS dell'utente con id=dangelo: ~dangelo: dangelo rlidwka (dangelo e gli utenti che fanno parte del gruppo system:administrators hanno tutti i diritti, tutti gli system:administrators rlidwka utenti del gruppo frascati possono vedere e leggere i file) frascati rl
Sicurezza
Particolare attenzione e' stata posta in AFS al problema della sicurezza. Di tutte le directory /home sotto AFS viene fatto un backup automatico notturno . Inoltre l'utente di AFS e' soggetto alla autenticazione attraverso il Kerberos Autentication Server. L'autenticazione ha una durata limitata nel tempo (default 25 ore) in modo da assicurare una ulteriore protezione nel caso che una sessione venga dimenticata aperta. La autenticazione e' fatta automaticamente al momento del login ed in qualsiasi istante l'utente puo' rinnovare l'autenticazione estendendone cosi' il periodo di validita'.
Gli Eseguibili
In particolare un utente AFS puo' eseguire sulla sua macchina un qualunque programma il cui eseguibile sia presente in una directory AFS. Il comando di esecuzione fa si' che il programma sia dapprima copiato dal Cache Manager sul disco locale e quindi eseguito localmente: tranne un breve tempo di attesa iniziale l'utente non percepisce alcuna differenza rispetto alla situazione in cui il programma sia installato a sua cura sulla macchina locale ma ha eliminato completamente tutti i problemi connessi con il reperimento, l'installazione e la manutenzione del software, con significativi risparmi di tempo e di spazio disco locale. La Directory dove risiedono gli eseguibili deve avere ambedue i permessi di LOOKUP e READ permission per poter mandare in esecuzione il binario.
Per ulteriori informazioni, contattare D'Angelo Pietro