Qualche nota in piu` sugli extended attributes
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 24 Sep 2007 12:06:32 +0000 (12:06 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 24 Sep 2007 12:06:32 +0000 (12:06 +0000)
filedir.tex

index 04eef2a533beb608d196dca9a718924bca81b744..a91b26f9d1c9635eb9633ff46efb3d743299176b 100644 (file)
@@ -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}