From: Simone Piccardi Date: Mon, 24 Sep 2007 12:06:32 +0000 (+0000) Subject: Qualche nota in piu` sugli extended attributes X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=commitdiff_plain;h=339462fbbeedc146862cce90b4fdc59d835c6241;p=gapil.git Qualche nota in piu` sugli extended attributes --- diff --git a/filedir.tex b/filedir.tex index 04eef2a..a91b26f 100644 --- a/filedir.tex +++ b/filedir.tex @@ -2576,6 +2576,66 @@ efficienti,\footnote{cosa molto importante, specie per le applicazioni che richiedono una gran numero di accessi, come le ACL.} e di garantire l'atomicità di tutte le operazioni. +In Linux gli attributi estesi sono sempre associati al singolo inode e +l'accesso viene sempre eseguito in forma atomica, in lettura il valore +corrente viene scritto su un buffer in memoria, mentre la scrittura prevede +che ogni valore precedente sia sovrascritto. L'accesso agli attributi estesi è +regolato dagli ordinari permessi dei file: occorre il permesso di lettura per +leggerli e quello di scrittura per scriverli o modificarli; il permesso di +esecuzione viene invece interpretato coma la capacità di ottenere la lista +degli attributi presenti. + +Si tenga presente che non tutti i filesystem supportano gli \textit{Extended + Attributes}, in particolare al momento della scrittura di queste dispense +essi sono presenti solo su \textsl{ext2}, \textsl{ext3} e \textsl{XFS}. +Inoltre a seconda della implementazione ci possono essere dei limiti sulla +quantità di attributi che si possono utilizzare.\footnote{ad esempio nel caso + di \textsl{ext2} ed \textsl{ext3} è richiesto che essi siano contenuti + all'interno di un singolo blocco (pertanto con dimensioni massime + dell'ordine di 1024, 2048 o 4096 byte a seconda delle dimensioni di + quest'ultimo impostate in fase di formattazione), mentre con \textsl{XFS} + non ci sono limiti ed i dati vengono memorizzati in maniera diversa + (nell'inode stesso, in un blocco a parte, in una struttura ad albero + dedicata) per mantentere la scalabilità.} Infine lo spazio utilizzato per +mantenere gli attributi estesi viene tenuto in conto per il calcolo delle +quote di utente e gruppo proprietari del file. + +Come accennato gli \textit{Extended Attributes} costituiscono un meccanismo +per mantenere informazioni ulteriori associate al singolo file, che possono +avere gli usi più disparati.\footnote{come accennato sono usati per le ACL che + vedremo in sez.~\ref{sec:file_ACL}, ma anche per le estensioni di SELinux.} +Per poter distinguere i vari utilizzi possibili gli attributi sono stati +suddivisi in diverse \textsl{classi}, a cui poter applicare requisiti diversi +per l'accesso e la gestione. Per questo motivo il nome di un attributo deve +essere sempre specificato nella forma \texttt{namespace.attribute}, +\textit{namespace} fa riferimento alla classe a cui l'attributo appartiene; al +momento della scrittura di queste dispense essi sono definite le seguenti +classi: + + + + + + + +\begin{table}[htb] + \centering + \footnotesize + \begin{tabular}{|c|l|} + \hline + \textbf{Nome} & \textbf{Classe} \\ + \hline + \hline + \const{security}& . \\ + \const{system} & . \\ + \const{trusted} & . \\ + \const{user} & . \\ + \hline + \end{tabular} + \caption{I nomi utilizzati valore di \texttt{namespace} per distinguere le + varue classi di \textit{Extended Attributes}.} + \label{tab:extended_attribute_class} +\end{table}