Aggiornamento data copyright
[gapil.git] / filedir.tex
index eb9c3aee954640ed0f629c4e7fe2f53915526a7c..e007c50c21604cda54823e5d5461f8ae9fb1b4a4 100644 (file)
@@ -1,6 +1,6 @@
 %% filedir.tex
 %%
-%% Copyright (C) 2000-2009 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2011 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
@@ -1704,7 +1705,7 @@ dimensione si possono usare le due funzioni \funcd{truncate} e
 \begin{functions}
   \headdecl{unistd.h} \funcdecl{int truncate(const char *file\_name, off\_t
     length)} Fa si che la dimensione del file \param{file\_name} sia troncata
-  ad un valore massimo specificato da \param{lenght}.
+  ad un valore massimo specificato da \param{length}.
   
   \funcdecl{int ftruncate(int fd, off\_t length))} Identica a \func{truncate}
   eccetto che si usa con un file aperto, specificato tramite il suo file
@@ -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
@@ -2889,7 +2891,7 @@ notazione illustrata in fig.~\ref{fig:file_perm_bit}.
 Si ricordi infine che i permessi non hanno alcun significato per i link
 simbolici, mentre per i \index{file!di~dispositivo} file di dispositivo hanno
 senso soltanto i permessi di lettura e scrittura, che si riflettono sulla
-possibilita di compiere dette operazioni sul dispositivo stesso.
+possibilità di compiere dette operazioni sul dispositivo stesso.
 
 Nella tabella si è indicato con il carattere ``-'' il fatto che il valore del
 bit in questione non è influente rispetto a quanto indicato nella riga della
@@ -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
@@ -3150,7 +3150,7 @@ che 
     \const{CAP\_SYS\_CHROOT}& La capacità di eseguire la funzione
                               \func{chroot} (vedi
                               sez.~\ref{sec:file_chroot}).\\
-    \const{CAP\_MAC\_ADMIN} & La capacità amministare il MAC di Smack (dal
+    \const{CAP\_MAC\_ADMIN} & La capacità amministrare il MAC di Smack (dal
                               kernel 2.6.25).\\  
     \const{CAP\_MAC\_OVERRIDE}& La capacità evitare il MAC di Smack (dal
                               kernel 2.6.25).\\  
@@ -3237,7 +3237,7 @@ politiche di allocazione delle pagine di memoria ai nodi di un sistema NUMA.
 Infine la \textit{capability} \const{CAP\_SYS\_RESOURCE} attiene alla
 possibilità di superare i limiti imposti sulle risorse di sistema, come usare
 lo spazio disco riservato all'amministratore sui filesystem che lo supportano,
-usare la funzione \func{ioctl} per cotrollare il \textit{journaling} sul
+usare la funzione \func{ioctl} per controllare il \textit{journaling} sul
 filesystem \acr{ext3}, non subire le quote disco, aumentare i limiti sulle
 risorse (vedi sez.~\ref{sec:sys_resource_limit}) e sulle dimensioni dei
 messaggi delle code del SysV IPC (vedi sez.~\ref{sec:ipc_sysv_mq}).
@@ -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}}
@@ -4931,7 +4930,7 @@ programmi e librerie) di cui il server potrebbe avere bisogno.
 
 
 % LocalWords:  sez like filesystem unlink MacOS Windows VMS inode kernel unistd
-% LocalWords:  int const char oldpath newpath errno EXDEV EPERM st
+% LocalWords:  int const char oldpath newpath errno EXDEV EPERM st Smack SysV
 % LocalWords:  EEXIST EMLINK EACCES ENAMETOOLONG ENOTDIR EFAULT ENOMEM EROFS ls
 % LocalWords:  ELOOP ENOSPC EIO pathname nlink stat vfat fsck EISDIR ENOENT cap
 % LocalWords:  POSIX socket fifo sticky root system call count crash nell' init
@@ -4979,7 +4978,8 @@ programmi e librerie) di cui il server potrebbe avere bisogno.
 % LocalWords:  LEASE lease SETFCAP AUDIT permitted inherited inheritable AND
 % LocalWords:  bounding execve fork capget capset header hdrp datap ESRCH undef
 % LocalWords:  version libcap lcap clear ncap caps pag capgetp CapInh CapPrm
-% LocalWords:  fffffeff CapEff getcap
+% LocalWords:  fffffeff CapEff getcap dell'IPC scheduling dell'I lookup dcookie
+% LocalWords:  NEWNS unshare nice NUMA ioctl journaling
 
 %%% Local Variables: 
 %%% mode: latex