X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=8b72628b138715490ecd7d82468f5a77c99aead0;hp=f139117eb47a11c08de2614f4c1e6f5a6bd4f3e5;hb=5d621249af8897e27fc0a842a33e7a7ef3b9c2ca;hpb=892b9091ebddf50340e0bc1fb8be56e3a4c7f3ea diff --git a/filedir.tex b/filedir.tex index f139117..8b72628 100644 --- a/filedir.tex +++ b/filedir.tex @@ -1,6 +1,6 @@ %% 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", @@ -1680,9 +1680,10 @@ dimensione inferiore sarebbe inefficiente. 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 @@ -1732,9 +1733,9 @@ dimensione si possono usare le due funzioni \funcd{truncate} e 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} @@ -2647,9 +2648,10 @@ a scongiurare l'abuso dei \itindex{suid~bit} bit \acr{suid} e \acr{sgid}; essa 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 @@ -2941,11 +2943,11 @@ un insieme di \textsl{capacit 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 @@ -3023,7 +3025,6 @@ capacit vengono mantenute le stesse capacità del processo padre. - % TODO verificare per process capability bounding set, vedi: % http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3b7391de67da515c91f48aa371de77cb6cc5c07e @@ -3033,7 +3034,6 @@ vengono mantenute le stesse capacit % 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 @@ -3746,25 +3746,25 @@ classi di attributi riportate in tab.~\ref{tab:extended_attribute_class}. \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.\\ @@ -4058,12 +4058,14 @@ file descriptor, da specificare con il loro primo argomento. Anche in questo caso l'argomento \param{name} deve essere specificato con le modalità già illustrate in precedenza per le altre funzioni relative agli attributi estesi. - \itindend{Extended~Attributes} + \subsection{Le \textit{Access Control List}} \label{sec:file_ACL} +% la documentazione di sistema è nei pacchetti libacl1-dev e acl +% vedi anche http://www.suse.de/~agruen/acl/linux-acls/online/ \itindbeg{Access~Control~List} @@ -4304,7 +4306,7 @@ queste funzioni che prendiamo in esame \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. @@ -4763,7 +4765,7 @@ directory, ed il cui prototipo 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, @@ -4836,9 +4838,6 @@ ad un altra con \funcd{acl\_copy\_entry} o eliminare una voce da una ACL con \itindend{Access~Control~List} -% la documentazione di sistema è nei pacchetti libacl1-dev e acl -% vedi anche http://www.suse.de/~agruen/acl/linux-acls/online/ - \subsection{La funzione \func{chroot}}