%% filedir.tex
%%
-%% Copyright (C) 2000-2009 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2010 Simone Piccardi. Permission is granted to
%% copy, distribute and/or modify this document under the terms of the GNU Free
%% Documentation License, Version 1.1 or any later version published by the
%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
Si tenga conto che la lunghezza del file riportata in \var{st\_size} non è
detto che corrisponda all'occupazione dello spazio su disco per via della
-possibile esistenza dei cosiddetti \textit{holes} (letteralmente
-\textsl{buchi}) che si formano tutte le volte che si va a scrivere su un file
-dopo aver eseguito una \func{lseek} (vedi sez.~\ref{sec:file_lseek}) oltre la
+possibile esistenza dei cosiddetti \index{file!\textit{hole}} \textit{holes}
+(letteralmente \textsl{buchi}) che si formano tutte le volte che si va a
+scrivere su un \itindex{sparse~file} file dopo aver eseguito una \func{lseek}
+(tratteremo in dettaglio l'argomento in sez.~\ref{sec:file_lseek}) oltre la
sua fine.
In questo caso si avranno risultati differenti a seconda del modo in cui si
Se il file è più lungo della lunghezza specificata i dati in eccesso saranno
perduti; il comportamento in caso di lunghezza inferiore non è specificato e
dipende dall'implementazione: il file può essere lasciato invariato o esteso
-fino alla lunghezza scelta; in quest'ultimo caso lo spazio viene riempito con
-zeri (e in genere si ha la creazione di un \textit{hole} nel file).
-
+fino alla lunghezza scelta; nel caso di Linux viene esteso con la creazione di
+un \index{file!\textit{hole}} \textsl{buco} nel \itindex{sparse~file} file e
+ad una lettura si otterranno degli zeri.
\subsection{I tempi dei file}
\label{sec:file_file_times}
consiste nel cancellare automaticamente questi bit dai permessi di un file
qualora un processo che non appartenga all'amministratore\footnote{per la
precisione un processo che non dispone della \itindex{capabilities} capacità
- \const{CAP\_FSETID}.} effettui una scrittura. In questo modo anche se un
-utente malizioso scopre un file \acr{suid} su cui può scrivere, un'eventuale
-modifica comporterà la perdita di questo privilegio.
+ \const{CAP\_FSETID}, vedi sez.~\ref{sec:proc_capabilities}.} effettui una
+scrittura. In questo modo anche se un utente malizioso scopre un file
+\acr{suid} su cui può scrivere, un'eventuale modifica comporterà la perdita di
+questo privilegio.
Le funzioni \func{chmod} e \func{fchmod} ci permettono di modificare i
permessi di un file, resta però il problema di quali sono i permessi assegnati
potessero essere abilitate e disabilitate in maniera indipendente per ciascun
processo con privilegi di amministratore, permettendo così una granularità
molto più fine nella distribuzione degli stessi che evitasse la originaria
-situazione di \textsl{tutto o nulla}.
+situazione di ``\textsl{tutto o nulla}''.
Il meccanismo completo delle \textit{capabilities}\footnote{l'implementazione
si rifà ad una bozza di quello che doveva diventare lo standard POSIX.1e,
- ormai abbandonato.} prevede inoltre la possibilità di associare le stesse ai
+ poi abbandonato.} prevede inoltre la possibilità di associare le stesse ai
singoli file eseguibili, in modo da poter stabilire quali capacità possono
essere utilizzate quando viene messo in esecuzione uno specifico programma; ma
il supporto per questa funzionalità è stato introdotto soltanto a partire dal
% http://lwn.net/Articles/211883/
-
Un elenco delle delle \textit{capabilities} disponibili su Linux, con una
breve descrizione ed il nome delle costanti che le identificano, è riportato
in tab.~\ref{tab:proc_capabilities};\footnote{l'elenco presentato questa
\textbf{Nome} & \textbf{Descrizione} \\
\hline
\hline
- \const{security}& Gli \textit{extended security attributes}: vengono
+ \texttt{security}&Gli \textit{extended security attributes}: vengono
utilizzati dalle estensioni di sicurezza del kernel (i
\itindex{Linux~Security~Modules} \textit{Linux
Security Modules}), per le realizzazione di meccanismi
evoluti di controllo di accesso come \index{SELinux}
SELinux o le \textit{capabilities} dei file di
sez.~\ref{sec:proc_capabilities}.\\
- \const{system} & Gli \textit{extended security attributes}: sono usati
+ \texttt{system} & Gli \textit{extended security attributes}: sono usati
dal kernel per memorizzare dati di sistema associati ai
file come le \itindex{Access~Control~List} ACL (vedi
sez.~\ref{sec:file_ACL}) o le \itindex{capabilities}
\textit{capabilities} (vedi
sez.~\ref{sec:proc_capabilities}).\\
- \const{trusted} & I \textit{trusted extended attributes}: vengono
+ \texttt{trusted}& I \textit{trusted extended attributes}: vengono
utilizzati per poter realizzare in user space
meccanismi che consentano di mantenere delle
informazioni sui file che non devono essere accessibili
ai processi ordinari.\\
- \const{user} & Gli \textit{extended user attributes}: utilizzati per
+ \texttt{user} & Gli \textit{extended user attributes}: utilizzati per
mantenere informazioni aggiuntive sui file (come il
\textit{mime-type}, la codifica dei caratteri o del
file) accessibili dagli utenti.\\
\end{functions}
La funzione alloca ed inizializza un'area di memoria che verrà usata per
-mantenere i dati di una ACL contenente fino ad un massimo di \const{count}
+mantenere i dati di una ACL contenente fino ad un massimo di \param{count}
voci. La funzione ritorna un valore di tipo \type{acl\_t}, da usare in tutte
le altre funzioni che operano sulla ACL. La funzione si limita alla
allocazione iniziale e non inserisce nessun valore nella ACL che resta vuota.
La funzione consente di assegnare la ACL contenuta in \param{acl} al file o
alla directory indicate dal pathname \param{path}, mentre con \param{type} si
-indica il tipo di ACL utilizzando le constanti di tab.~\ref{tab:acl_type}, ma
+indica il tipo di ACL utilizzando le costanti di tab.~\ref{tab:acl_type}, ma
si tenga presente che le ACL di default possono essere solo impostate
qualora \param{path} indichi una directory. Inoltre perché la funzione abbia
successo la ACL dovrà essere valida, e contenere tutti le voci necessarie,