Altre indicizzazioni e recupero dei pezzi tagliati per sbaglio
[gapil.git] / filedir.tex
index dea3f7fcfbcf5b9816129c2f9a206131fb0280df..e6fc42e3c6b0f546b024ce5cd347bd2649dff08e 100644 (file)
@@ -137,13 +137,13 @@ scopo è risolvere il nome mancante e fornire la sua \textit{dentry} che a
 questo punto verrà inserita nella cache.
 
 Dato che tutte le volte che si monta un filesystem la funzione \texttt{mount}
-della corrispondente \kstruct{file\_system\_type} inserisce la \textit{dentry}
-iniziale nel \itindex{mount~point} \textit{mount point} dello stesso, si avrà
-comunque un punto di partenza. Inoltre essendo questa \textit{dentry} relativa
-a quel tipo di filesystem essa farà riferimento ad un \textit{inode} di quel
-filesystem, e come vedremo questo farà sì che venga eseguita una
-\texttt{lookup} adatta per effettuare la risoluzione dei nomi per quel
-filesystem.
+(vedi sez.~\ref{sec:filesystem_mounting}) della corrispondente
+\kstruct{file\_system\_type} inserisce la \textit{dentry} iniziale nel
+\textit{mount point} dello stesso, si avrà comunque un punto di
+partenza. Inoltre essendo questa \textit{dentry} relativa a quel tipo di
+filesystem essa farà riferimento ad un \textit{inode} di quel filesystem, e
+come vedremo questo farà sì che venga eseguita una \texttt{lookup} adatta per
+effettuare la risoluzione dei nomi per quel filesystem.
 
 \itindend{pathname}
 \itindend{pathname~resolution}
@@ -653,12 +653,11 @@ memorizzati. L'operazione di attivazione del filesystem è chiamata
   \item[\errcode{EINVAL}] il dispositivo \param{source} presenta un
     \itindex{superblock} \textit{superblock} non valido, o si è cercato di
     rimontare un filesystem non ancora montato, o di montarlo senza
-    che \param{target} sia un \itindex{mount~point} \textit{mount point} o di
-    spostarlo quando \param{target} non è un \itindex{mount~point}
-    \textit{mount point} o è la radice.
-  \item[\errcode{ELOOP}] si è cercato di spostare un \itindex{mount~point}
-    \textit{mount point} su una sottodirectory di \param{source} o si sono
-    incontrati troppi collegamenti simbolici nella risoluzione di un nome.
+    che \param{target} sia un \textit{mount point} o di spostarlo
+    quando \param{target} non è un \textit{mount point} o è la radice.
+  \item[\errcode{ELOOP}] si è cercato di spostare un \textit{mount point} su
+    una sottodirectory di \param{source} o si sono incontrati troppi
+    collegamenti simbolici nella risoluzione di un nome.
   \item[\errcode{EMFILE}] in caso di filesystem virtuale, la tabella dei
     dispositivi fittizi (chiamati \textit{dummy} nella documentazione inglese)
     è piena.
@@ -674,12 +673,14 @@ memorizzati. L'operazione di attivazione del filesystem è chiamata
   \errval{ENOENT}, \errval{ENOTDIR} nel loro significato generico.}
 \end{funcproto}
 
+\itindbeg{mount~point}
+
 La funzione monta sulla directory indicata da \param{target}, detta
-\itindex{mount~point} \textit{mount point}, il filesystem contenuto nel file
-di dispositivo indicato da \param{source}. In entrambi i casi, come daremo per
-assunto da qui in avanti tutte le volte che si parla di directory o file nel
-passaggio di un argomento di una funzione, si intende che questi devono essere
-indicati con la stringa contenente il loro \textit{pathname}.
+\textit{mount point}, il filesystem contenuto nel file di dispositivo indicato
+da \param{source}. In entrambi i casi, come daremo per assunto da qui in
+avanti tutte le volte che si parla di directory o file nel passaggio di un
+argomento di una funzione, si intende che questi devono essere indicati con la
+stringa contenente il loro \textit{pathname}.
 
 Normalmente un filesystem è contenuto su un disco o una partizione, ma come
 illustrato in sez.~\ref{sec:file_vfs_work} la struttura del \textit{Virtual
@@ -710,20 +711,20 @@ filesystem e ciascuno ha i suoi, pertanto si rimanda alla documentazione della
 pagina di manuale di questo comando e dei singoli filesystem.
 
 Dopo l'esecuzione della funzione il contenuto del filesystem viene resto
-disponibile nella directory specificata come \itindex{mount~point}
-\textit{mount point}, il precedente contenuto di detta directory viene
-mascherato dal contenuto della directory radice del filesystem montato. Fino
-ai kernel della serie 2.2.x non era possibile montare un filesystem se un
-\textit{mount point} era già in uso. 
+disponibile nella directory specificata come \textit{mount point}, il
+precedente contenuto di detta directory viene mascherato dal contenuto della
+directory radice del filesystem montato. Fino ai kernel della serie 2.2.x non
+era possibile montare un filesystem se un \textit{mount point} era già in uso.
 
 A partire dal kernel 2.4.x inoltre è divenuto possibile sia spostare
-atomicamente un \itindex{mount~point} \textit{mount point} da una directory ad
-un'altra, sia montare lo stesso filesystem in diversi \itindex{mount~point}
-\textit{mount point}, sia montare più filesystem sullo stesso
-\itindex{mount~point} \textit{mount point} impilandoli l'uno sull'altro, nel
+atomicamente un \textit{mount point} da una directory ad un'altra, sia montare
+lo stesso filesystem in diversi \textit{mount point}, sia montare più
+filesystem sullo stesso \textit{mount point} impilandoli l'uno sull'altro, nel
 qual caso vale comunque quanto detto in precedenza, e cioè che solo il
 contenuto dell'ultimo filesystem montato sarà visibile.
 
+\itindend{mount~point}
+
 Oltre alle opzioni specifiche di ciascun filesystem, che si passano nella
 forma della lista di parole chiave indicata con l'argomento \param{data},
 esistono pure alcune opzioni che si possono applicare in generale, anche se
@@ -826,10 +827,9 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   comunque attivato esplicitamente per i singoli file impostando i permessi
   come illustrato in sez.~\ref{sec:file_mand_locking}.
 
-\item[\const{MS\_MOVE}] Effettua uno del spostamento del \itindex{mount~point}
-  \textit{mount point} di un filesystem. La directory del
-  \itindex{mount~point} \textit{mount point} originale deve essere indicata
-  nell'argomento \param{source}, e la sua nuova posizione
+\item[\const{MS\_MOVE}] Effettua uno del spostamento del \textit{mount point}
+  di un filesystem. La directory del \textit{mount point} originale deve
+  essere indicata nell'argomento \param{source}, e la sua nuova posizione
   nell'argomento \param{target}. Tutti gli altri argomenti della funzione
   vengono ignorati.
 
@@ -891,36 +891,36 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
     dall'amministratore.}
 
 \item[\const{MS\_NOSUID}] Viene disabilitato sul filesystem l'effetto dei bit
-  dei permessi \itindex{suid~bit} \acr{suid} e \itindex{sgid~bit} \acr{sgid}
-  (vedi sez.~\ref{sec:file_special_perm}) eventualmente presenti sui file in
-  esso contenuti. L'opzione viene usata come misura di precauzione per rendere
-  inefficace l'effetto di questi bit per filesystem in cui non ci dovrebbero
-  essere file dotati di questi permessi.
+  dei permessi \acr{suid} e \acr{sgid} (vedi sez.~\ref{sec:file_special_perm})
+  eventualmente presenti sui file in esso contenuti. L'opzione viene usata
+  come misura di precauzione per rendere inefficace l'effetto di questi bit
+  per filesystem in cui non ci dovrebbero essere file dotati di questi
+  permessi.
 
   Di nuovo viene utilizzata, analogamente a \const{MS\_NOEXEC} e
   \const{MS\_NODEV}, per fornire un accesso più controllato a quei filesystem
   di cui gli utenti hanno il controllo dei contenuti. In questo caso si evita
   che un utente malizioso possa inserire su uno di questi filesystem un
-  eseguibile con il bit \itindex{suid~bit} \acr{suid} attivo e di proprietà
-  dell'amministratore o di un altro utente, che gli consentirebbe di eseguirlo
-  per conto di quest'ultimo.
-
-\item[\const{MS\_PRIVATE}] Marca un \itindex{mount~point} \textit{mount point}
-  come privato. Si tratta di una delle nuove opzioni (insieme a
-  \const{MS\_SHARED}, \const{MS\_SLAVE} e \const{MS\_UNBINDABLE}) facenti
-  parte dell'infrastruttura degli \itindex{shared~subtree} \textit{shared
-    subtree} introdotta a partire dal kernel 2.6.15, che estendono le
-  funzionalità dei \itindex{bind~mount} \textit{bind mount}. In questo caso
+  eseguibile con il bit \acr{suid} attivo e di proprietà dell'amministratore o
+  di un altro utente, che gli consentirebbe di eseguirlo per conto di
+  quest'ultimo.
+
+\item[\const{MS\_PRIVATE}] Marca un \textit{mount point} come privato. Si
+  tratta di una delle nuove opzioni (insieme a \const{MS\_SHARED},
+  \const{MS\_SLAVE} e \const{MS\_UNBINDABLE}) facenti parte
+  dell'infrastruttura degli \itindex{shared~subtree} \textit{shared subtree}
+  introdotta a partire dal kernel 2.6.15, che estendono le funzionalità dei
+  \itindex{bind~mount} \textit{bind mount}. In questo caso
   \param{target} dovrà fare riferimento al \textit{mount point} che si intende
   marcare, e tutti gli altri argomenti verranno ignorati.
 
   Di default, finché non lo si marca altrimenti con una delle altre opzioni
   dell'interfaccia \itindex{shared~subtree} \textit{shared subtree}, ogni
   \textit{mount point} è privato. Ogni \textit{bind mount} ottenuto da un
-  \itindex{mount~point} \textit{mount point} di tipo \textit{private} si
-  comporta come descritto nella trattazione di \const{MS\_BIND}. Si usa questo
-  flag principalmente per revocare gli effetti delle altre opzioni e riportare
-  il comportamento a quello ordinario.
+  \textit{mount point} di tipo \textit{private} si comporta come descritto
+  nella trattazione di \const{MS\_BIND}. Si usa questo flag principalmente per
+  revocare gli effetti delle altre opzioni e riportare il comportamento a
+  quello ordinario.
 
 \item[\const{MS\_RDONLY}] Esegue il montaggio del filesystem in sola lettura,
   non sarà possibile nessuna modifica ai suoi contenuti. Viene usato tutte le
@@ -929,13 +929,13 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   corrotto). All'avvio di default il kernel monta la radice in questa
   modalità.
 
-\item[\const{MS\_REC}] Applica ricorsivamente a tutti i \itindex{mount~point}
-  \textit{mount point} presenti al di sotto del \textit{mount point} indicato
-  gli effetti della opzione degli \itindex{shared~subtree} \textit{shared
-    subtree} associata. Anche questo caso l'argomento \param{target} deve fare
-  riferimento ad un \itindex{mount~point} \textit{mount point} e tutti gli
-  altri argomenti sono ignorati, ed il flag deve essere indicato assieme ad
-  una fra \const{MS\_PRIVATE}, \const{MS\_SHARED}, \const{MS\_SLAVE} e
+\item[\const{MS\_REC}] Applica ricorsivamente a tutti i \textit{mount point}
+  presenti al di sotto del \textit{mount point} indicato gli effetti della
+  opzione degli \itindex{shared~subtree} \textit{shared subtree}
+  associata. Anche questo caso l'argomento \param{target} deve fare
+  riferimento ad un \textit{mount point} e tutti gli altri argomenti sono
+  ignorati, ed il flag deve essere indicato assieme ad una fra
+  \const{MS\_PRIVATE}, \const{MS\_SHARED}, \const{MS\_SLAVE} e
   \const{MS\_UNBINDABLE}.
 
   % TODO trattare l'opzione \texttt{lazytime} introdotta con il kernel 4.0,
@@ -977,15 +977,14 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   \const{MS\_NOATIME} e \const{MS\_NODIRATIME}, ed infine prima del kernel
   2.4.10 anche \const{MS\_NODEV}, \const{MS\_NOEXEC} e \const{MS\_NOSUID}.
 
-\item[\const{MS\_SHARED}] Marca un \itindex{mount~point} \textit{mount point}
-  come \textit{shared mount}.  Si tratta di una delle nuove opzioni (insieme a
+\item[\const{MS\_SHARED}] Marca un \textit{mount point} come \textit{shared
+    mount}.  Si tratta di una delle nuove opzioni (insieme a
   \const{MS\_PRIVATE}, \const{MS\_SLAVE} e \const{MS\_UNBINDABLE}) facenti
   parte dell'infrastruttura degli \itindex{shared~subtree} \textit{shared
     subtree} introdotta a partire dal kernel 2.6.15, che estendono le
   funzionalità dei \itindex{bind~mount} \textit{bind mount}.  In questo caso
-  \param{target} dovrà fare riferimento al \itindex{mount~point} \textit{mount
-    point} che si intende marcare, e tutti gli altri argomenti verranno
-  ignorati.
+  \param{target} dovrà fare riferimento al \textit{mount point} che si intende
+  marcare, e tutti gli altri argomenti verranno ignorati.
 
   Lo scopo dell'opzione è ottenere che tutti i successivi \itindex{bind~mount}
   \textit{bind mount} effettuati da un \textit{mount point} marcato da essa
@@ -994,9 +993,8 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   avviene su una directory al di sotto di uno qualunque di essi. Le operazioni
   di montaggio e smontaggio effettuate al di sotto di un qualunque
   \textit{mount point} così marcato verranno ``\textsl{propagate}'' a tutti i
-  \itindex{mount~point} \textit{mount point} della stessa condivisione, e la
-  sezione di albero di file vista al di sotto di ciascuno di essi sarà sempre
-  identica.
+  \textit{mount point} della stessa condivisione, e la sezione di albero di
+  file vista al di sotto di ciascuno di essi sarà sempre identica.
 
 \item[\const{MS\_SILENT}] Richiede la soppressione di alcuni messaggi di
   avvertimento nei log del kernel (vedi sez.~\ref{sec:sess_daemon}). L'opzione
@@ -1004,8 +1002,8 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   non fuorviante, la precedente \const{MS\_VERBOSE}, introdotta nel kernel
   2.6.12, che aveva lo stesso effetto.
 
-\item[\const{MS\_SLAVE}] Marca un \itindex{mount~point} \textit{mount point}
-  come \textit{slave mount}. Si tratta di una delle nuove opzioni (insieme a
+\item[\const{MS\_SLAVE}] Marca un \textit{mount point} come \textit{slave
+    mount}. Si tratta di una delle nuove opzioni (insieme a
   \const{MS\_PRIVATE}, \const{MS\_SHARED} e \const{MS\_UNBINDABLE}) facenti
   parte dell'infrastruttura degli \itindex{shared~subtree} \textit{shared
     subtree} introdotta a partire dal kernel 2.6.15, che estendono le
@@ -1021,8 +1019,7 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   questo caso vengono ``\textsl{propagate}'' soltanto dal \textit{mount point}
   originale (detto anche \textit{master}) verso gli \textit{slave}, mentre
   essi potranno eseguire al loro interno ulteriori montaggi che non saranno
-  propagati né negli altri né nel \itindex{mount~point} \textit{mount point}
-  originale.
+  propagati né negli altri né nel \textit{mount point} originale.
 
 \item[\const{MS\_STRICTATIME}] Ripristina il comportamento tradizionale per
   cui l'\textit{access time} viene aggiornato ad ogni accesso al
@@ -1042,23 +1039,22 @@ con un OR aritmetico dei valori dalle costanti riportate nell'elenco seguente:
   compromesso in cui questo comportamento avviene solo per le directory, ed ha
   quindi una incidenza nettamente minore, si può usare \const{MS\_DIRSYNC}.
 
-\item[\const{MS\_UNBINDABLE}] Marca un \itindex{mount~point} \textit{mount
-    point} come \textit{unbindable mount}. Si tratta di una delle nuove
-  opzioni (insieme a \const{MS\_PRIVATE}, \const{MS\_SHARED} e
-  \const{MS\_SLAVE}) facenti parte dell'infrastruttura degli
-  \itindex{shared~subtree} \textit{shared subtree} introdotta a partire dal
-  kernel 2.6.15, che estendono le funzionalità dei \itindex{bind~mount}
-  \textit{bind mount}.  In questo caso
+\item[\const{MS\_UNBINDABLE}] Marca un \textit{mount point} come
+  \textit{unbindable mount}. Si tratta di una delle nuove opzioni (insieme a
+  \const{MS\_PRIVATE}, \const{MS\_SHARED} e \const{MS\_SLAVE}) facenti parte
+  dell'infrastruttura degli \itindex{shared~subtree} \textit{shared subtree}
+  introdotta a partire dal kernel 2.6.15, che estendono le funzionalità dei
+  \itindex{bind~mount} \textit{bind mount}.  In questo caso
   \param{target} dovrà fare riferimento al \textit{mount point} che si intende
   marcare, e tutti gli altri argomenti verranno ignorati.
 
   Un \textit{mount point} marcato in questo modo disabilita la capacità di
   eseguire dei \itindex{bind~mount} \textit{bind mount} del suo contenuto. Si
-  comporta cioè come allo stesso modo di un \itindex{mount~point}
-  \textit{mount point} ordinario di tipo \textit{private} con in più la
-  restrizione che nessuna sua sottodirectory (anche se relativa ad un
-  ulteriore montaggio) possa essere utilizzata per un come sorgente di un
-  \itindex{bind~mount} \textit{bind mount}.
+  comporta cioè come allo stesso modo di un \textit{mount point} ordinario di
+  tipo \textit{private} con in più la restrizione che nessuna sua
+  sottodirectory (anche se relativa ad un ulteriore montaggio) possa essere
+  utilizzata per un come sorgente di un \itindex{bind~mount} \textit{bind
+    mount}.
 
 \end{basedescript}
 
@@ -1105,12 +1101,12 @@ non il file o il dispositivo che è stato montato,\footnote{questo è vero a
   funzione poteva essere usata anche specificando il file di dispositivo.} in
 quanto a partire dai kernel della serie 2.4.x è possibile montare lo stesso
 dispositivo in più punti. Nel caso più di un filesystem sia stato montato
-sullo stesso \itindex{mount~point} \textit{mount point} viene smontato quello
-che è stato montato per ultimo. Si tenga presente che la funzione fallisce se
-il filesystem è ``\textsl{occupato}'', cioè quando ci sono ancora dei file
-aperti sul filesystem, se questo contiene la directory di lavoro (vedi
-sez.~\ref{sec:file_work_dir}) di un qualunque processo o il
-\itindex{mount~point} \textit{mount point} di un altro filesystem.
+sullo stesso \textit{mount point} viene smontato quello che è stato montato
+per ultimo. Si tenga presente che la funzione fallisce se il filesystem è
+``\textsl{occupato}'', cioè quando ci sono ancora dei file aperti sul
+filesystem, se questo contiene la directory di lavoro (vedi
+sez.~\ref{sec:file_work_dir}) di un qualunque processo o il \textit{mount
+  point} di un altro filesystem.
 
 Linux provvede inoltre una seconda funzione di sistema, \funcd{umount2}, che
 consente un maggior controllo delle operazioni, come forzare lo smontaggio di
@@ -1158,10 +1154,10 @@ eseguita una sincronizzazione dei dati.
                           blocca l'accesso ma si aspetta che il filesystem si
                           liberi (presente dal kernel 2.4.11 e dalla
                           \acr{glibc} 2.11).\\ 
-    \const{MNT\_EXPIRE} & Se non occupato marca un \itindex{mount~point} 
-                          \textit{mount point} come ``\textsl{in scadenza}'' in
-                          modo che ad una successiva chiamata senza utilizzo
-                          del filesystem questo venga smontato (presente dal
+    \const{MNT\_EXPIRE} & Se non occupato marca un \textit{mount point} come
+                          ``\textsl{in scadenza}'' in modo che ad una
+                          successiva chiamata senza utilizzo del filesystem
+                          questo venga smontato (presente dal 
                           kernel 2.6.8 e dalla \acr{glibc} 2.11).\\ 
     \const{UMOUNT\_NOFOLLOW}& Non dereferenzia \param{target} se questo è un
                           collegamento simbolico (vedi
@@ -1181,14 +1177,14 @@ resta accessibile per quelli che lo hanno ancora in uso e non viene smontato
 fintanto che resta occupato.
 
 Con \const{MNT\_EXPIRE}, che non può essere specificato insieme agli altri
-due, si marca il \itindex{mount~point} \textit{mount point} di un filesystem
-non occupato come ``\textsl{in scadenza}'', in tal caso \func{umount2} ritorna
-con un errore di \errcode{EAGAIN}, mentre in caso di filesystem occupato si
-sarebbe ricevuto \errcode{EBUSY}.  Una volta marcato, se nel frattempo non
-viene fatto nessun uso del filesystem, ad una successiva chiamata con
-\const{MNT\_EXPIRE} questo verrà smontato. Questo flag consente di realizzare
-un meccanismo che smonti automaticamente i filesystem che restano inutilizzati
-per un certo periodo di tempo.
+due, si marca il \textit{mount point} di un filesystem non occupato come
+``\textsl{in scadenza}'', in tal caso \func{umount2} ritorna con un errore di
+\errcode{EAGAIN}, mentre in caso di filesystem occupato si sarebbe ricevuto
+\errcode{EBUSY}.  Una volta marcato, se nel frattempo non viene fatto nessun
+uso del filesystem, ad una successiva chiamata con \const{MNT\_EXPIRE} questo
+verrà smontato. Questo flag consente di realizzare un meccanismo che smonti
+automaticamente i filesystem che restano inutilizzati per un certo periodo di
+tempo.
 
 Infine il flag \const{UMOUNT\_NOFOLLOW} non dereferenzia \param{target} se
 questo è un collegamento simbolico (vedi
@@ -1353,7 +1349,7 @@ deve usare la funzione di sistema \funcd{link}, il cui prototipo è:
   \item[\errcode{EPERM}] il filesystem che contiene \param{oldpath} e
     \param{newpath} non supporta i collegamenti diretti o è una directory.
   \item[\errcode{EXDEV}] i file \param{oldpath} e \param{newpath} non fanno
-    riferimento ad un filesystem montato sullo stesso \itindex{mount~point}
+    riferimento ad un filesystem montato sullo stesso 
     \textit{mount point}.
   \end{errlist} ed inoltre \errval{EACCES}, \errval{EFAULT}, \errval{EIO},
   \errval{ELOOP}, \errval{ENAMETOOLONG}, \errval{ENOENT}, \errval{ENOMEM},
@@ -1377,10 +1373,10 @@ nello stesso filesystem ed inoltre esso deve supportare gli \textit{hard link}
 (il meccanismo non è disponibile ad esempio con il filesystem \acr{vfat} di
 Windows). In realtà la funzione ha un ulteriore requisito, e cioè che non solo
 che i due file siano sullo stesso filesystem, ma anche che si faccia
-riferimento ad essi all'interno dello stesso \itindex{mount~point}
-\textit{mount point}.\footnote{si tenga presente infatti, come detto in
-  sez.~\ref{sec:filesystem_mounting}, che a partire dal kernel 2.4 uno stesso
-  filesystem può essere montato più volte su directory diverse.}
+riferimento ad essi all'interno dello stesso \textit{mount point}.\footnote{si
+  tenga presente infatti, come detto in sez.~\ref{sec:filesystem_mounting},
+  che a partire dal kernel 2.4 uno stesso filesystem può essere montato più
+  volte su directory diverse.}
 
 La funzione inoltre opera sia sui file ordinari che sugli altri oggetti del
 filesystem, con l'eccezione delle directory. In alcune versioni di Unix solo
@@ -1800,8 +1796,7 @@ sistema \funcd{rename},\footnote{la funzione è definita dallo standard ANSI C,
     rispettivi file (o non si hanno privilegi amministrativi) oppure il
     filesystem non supporta l'operazione. 
   \item[\errcode{EXDEV}] \param{oldpath} e \param{newpath} non sono sullo
-    stesso filesystem e sotto lo stesso \itindex{mount~point} \textit{mount
-      point}. 
+    stesso filesystem e sotto lo stesso \textit{mount point}. 
   \end{errlist} ed inoltre \errval{EFAULT}, \errval{ELOOP}, \errval{EMLINK},
   \errval{ENAMETOOLONG}, \errval{ENOENT}, \errval{ENOMEM}, \errval{ENOSPC} e
   \errval{EROFS} nel loro significato generico.}
@@ -1825,10 +1820,10 @@ temporaneamente se già esiste.
 Dato che opera in maniera analoga la funzione è soggetta alle stesse
 restrizioni di \func{link}, quindi è necessario che \param{oldpath}
 e \param{newpath} siano nello stesso filesystem e facciano riferimento allo
-stesso \itindex{mount~point} \textit{mount point}, e che il filesystem
-supporti questo tipo di operazione. Qualora questo non avvenga si dovrà
-effettuare l'operazione in maniera non atomica copiando il file a destinazione
-e poi cancellando l'originale.
+stesso \textit{mount point}, e che il filesystem supporti questo tipo di
+operazione. Qualora questo non avvenga si dovrà effettuare l'operazione in
+maniera non atomica copiando il file a destinazione e poi cancellando
+l'originale.
 
 Il comportamento della funzione è diverso a seconda che si voglia rinominare
 un file o una directory. Se ci riferisce ad un file allora \param{newpath}, se
@@ -2834,18 +2829,20 @@ In molte occasioni è utile poter creare dei file temporanei; benché la cosa
 sembri semplice, in realtà il problema è più sottile di quanto non appaia a
 prima vista. Infatti anche se sembrerebbe banale generare un nome a caso e
 creare il file dopo aver controllato che questo non esista, nel momento fra il
-controllo e la creazione si ha giusto lo spazio per una possibile
-\itindex{race~condition} \textit{race condition} (si ricordi quanto visto in
-sez.~\ref{sec:proc_race_cond}).
+controllo e la creazione si ha giusto lo spazio per una possibile \textit{race
+  condition} (si ricordi quanto visto in sez.~\ref{sec:proc_race_cond}).
+
+\itindbeg{symlink~attack}
 
 Molti problemi di sicurezza derivano proprio da una creazione non accorta di
-file temporanei che lascia aperta questa \itindex{race~condition} \textit{race
-  condition}. Un attaccante allora potrà sfruttarla con quello che viene
-chiamato \itindex{symlink~attack} ``\textit{symlink attack}'' dove
-nell'intervallo fra la generazione di un nome e l'accesso allo stesso, viene
-creato un collegamento simbolico con quel nome verso un file diverso,
-ottenendo, se il programma sotto attacco ne ha la capacità, un accesso
-privilegiato.
+file temporanei che lascia aperta questa \textit{race condition}. Un
+attaccante allora potrà sfruttarla con quello che viene chiamato
+``\textit{symlink attack}'' dove nell'intervallo fra la generazione di un nome
+e l'accesso allo stesso, viene creato un collegamento simbolico con quel nome
+verso un file diverso, ottenendo, se il programma sotto attacco ne ha la
+capacità, un accesso privilegiato.
+
+\itindend{symlink~attack}
 
 La \acr{glibc} provvede varie funzioni per generare nomi di file temporanei,
 di cui si abbia certezza di unicità al momento della generazione; storicamente
@@ -2898,8 +2895,8 @@ nome provvisorio. La funzione assegna come directory per il file temporaneo,
 verificando che esista e sia accessibile, la prima valida fra le seguenti:
 \begin{itemize*}
 \item la variabile di ambiente \envvar{TMPDIR} (non ha effetto se non è
-  definita o se il programma chiamante è \itindex{suid~bit} \acr{suid} o
-  \itindex{sgid~bit} \acr{sgid}, vedi sez.~\ref{sec:file_special_perm}),
+  definita o se il programma chiamante è \acr{suid} o \acr{sgid}, vedi
+  sez.~\ref{sec:file_special_perm}),
 \item il valore dell'argomento \param{dir} (se diverso da \val{NULL}),
 \item il valore della costante \const{P\_tmpdir},
 \item la directory \file{/tmp}.
@@ -2944,7 +2941,7 @@ che viene automaticamente cancellato alla sua chiusura o all'uscita dal
 programma. Lo standard non specifica in quale directory verrà aperto il file,
 ma la \acr{glibc} prima tenta con \const{P\_tmpdir} e poi con
 \file{/tmp}. Questa funzione è rientrante e non soffre di problemi di
-\itindex{race~condition} \textit{race condition}.
+\textit{race condition}.
 
 Alcune versioni meno recenti di Unix non supportano queste funzioni; in questo
 caso si possono usare le vecchie funzioni \funcd{mktemp} e \func{mkstemp} che
@@ -2968,13 +2965,12 @@ casuale, il suo prototipo è:
 La funzione genera un nome univoco sostituendo le \code{XXXXXX} finali di
 \param{template}; dato che \param{template} deve poter essere modificata dalla
 funzione non si può usare una stringa costante.  Tutte le avvertenze riguardo
-alle possibili \itindex{race~condition} \textit{race condition} date per
-\func{tmpnam} continuano a valere; inoltre in alcune vecchie implementazioni
-il valore usato per sostituire le \code{XXXXXX} viene formato con il \ids{PID}
-del processo più una lettera, il che mette a disposizione solo 26 possibilità
-diverse per il nome del file, e rende il nome temporaneo facile da indovinare.
-Per tutti questi motivi la funzione è deprecata e non dovrebbe mai essere
-usata.
+alle possibili \textit{race condition} date per \func{tmpnam} continuano a
+valere; inoltre in alcune vecchie implementazioni il valore usato per
+sostituire le \code{XXXXXX} viene formato con il \ids{PID} del processo più
+una lettera, il che mette a disposizione solo 26 possibilità diverse per il
+nome del file, e rende il nome temporaneo facile da indovinare.  Per tutti
+questi motivi la funzione è deprecata e non dovrebbe mai essere usata.
 
 La seconda funzione, \funcd{mkstemp} è sostanzialmente equivalente a
 \func{tmpfile}, ma restituisce un file descriptor invece di un nome; il suo
@@ -3048,8 +3044,8 @@ In OpenBSD è stata introdotta un'altra funzione simile alle precedenti,
 La funzione crea una directory temporanea il cui nome è ottenuto sostituendo
 le \code{XXXXXX} finali di \param{template} con permessi \code{0700} (si veda
 sez.~\ref{sec:file_perm_overview} per i dettagli). Dato che la creazione della
-directory è sempre esclusiva i precedenti problemi di \itindex{race~condition}
-\textit{race condition} non si pongono.
+directory è sempre esclusiva i precedenti problemi di \textit{race condition}
+non si pongono.
 
 
 
@@ -3236,11 +3232,12 @@ come argomento il valore di \var{st\_mode}.
     \const{S\_IFCHR}  &  0020000 & Dispositivo a caratteri.\\
     \const{S\_IFIFO}  &  0010000 & Fifo.\\
     \hline
-    \const{S\_ISUID}  &  0004000 & Set user ID \itindex{suid~bit} (\acr{suid})
-                                   bit.\\ 
-    \const{S\_ISGID}  &  0002000 & Set group ID \itindex{sgid~bit}
-                                   (\acr{sgid}) bit.\\
-    \const{S\_ISVTX}  &  0001000 & \itindex{sticky~bit} \acr{Sticky} bit.\\
+    \const{S\_ISUID}  &  0004000 & Set user ID (\acr{suid}) bit, vedi
+                                   sez.~\ref{sec:file_special_perm}).\\
+    \const{S\_ISGID}  &  0002000 & Set group ID (\acr{sgid}) bit, vedi
+                                   sez.~\ref{sec:file_special_perm}).\\
+    \const{S\_ISVTX}  &  0001000 & \acr{Sticky} bit, vedi
+                                   sez.~\ref{sec:file_special_perm}).\\
     \hline
     \const{S\_IRWXU}  &  00700   & Maschera per i permessi del proprietario.\\
     \const{S\_IRUSR}  &  00400   & Il proprietario ha permesso di lettura.\\
@@ -3899,11 +3896,10 @@ rispettivamente al proprietario, al gruppo, a tutti gli altri.
   \label{fig:file_perm_bit}
 \end{figure}
 
-I restanti tre bit (noti come \itindex{suid~bit} \textit{suid bit},
-\itindex{sgid~bit} \textit{sgid bit}, e \itindex{sticky~bit} \textit{sticky
-  bit}) sono usati per indicare alcune caratteristiche più complesse del
-meccanismo del controllo di accesso su cui torneremo in seguito (in
-sez.~\ref{sec:file_special_perm}), lo schema di allocazione dei bit è
+I restanti tre bit (noti come \textit{suid bit}, \textit{sgid bit}, e
+\textit{sticky bit}) sono usati per indicare alcune caratteristiche più
+complesse del meccanismo del controllo di accesso su cui torneremo in seguito
+(in sez.~\ref{sec:file_special_perm}), lo schema di allocazione dei bit è
 riportato in fig.~\ref{fig:file_perm_bit}.  Come tutte le altre proprietà di
 un file anche i permessi sono memorizzati \itindex{inode} nell'\textit{inode},
 e come accennato in sez.~\ref{sec:file_types} essi sono vengono restituiti in
@@ -4177,7 +4173,6 @@ sez.~\ref{sec:file_mand_locking}).
 \itindend{suid~bit}
 \itindend{sgid~bit}
 
-
 \itindbeg{sticky~bit}
 
 L'ultimo dei bit rimanenti, identificato dalla costante \const{S\_ISVTX}, è in
@@ -4308,14 +4303,13 @@ controllati sono disponibili.
 
 Un esempio tipico per l'uso di questa funzione è quello di un processo che sta
 eseguendo un programma coi privilegi di un altro utente (ad esempio attraverso
-l'uso del \itindex{suid~bit} \textit{suid bit}) che vuole controllare se
-l'utente originale ha i permessi per accedere ad un certo file, ma eseguire
-questo controllo prima di aprire il file espone al rischio di una
-\itindex{race~condition} \textit{race condition} che apre ad un possibile
-\itindex{symlink~attack} \textit{symlink attack} fra il controllo e l'apertura
-del file. In questo caso è sempre opportuno usare invece la funzione
-\func{faccessat} che tratteremo insieme alle altre \textit{at-functions} in
-sez.~\ref{sec:file_openat}.
+l'uso del \textit{suid bit}) che vuole controllare se l'utente originale ha i
+permessi per accedere ad un certo file, ma eseguire questo controllo prima di
+aprire il file espone al rischio di una \textit{race condition} che apre ad un
+possibile \itindex{symlink~attack} \textit{symlink attack} fra il controllo e
+l'apertura del file. In questo caso è sempre opportuno usare invece la
+funzione \func{faccessat} che tratteremo insieme alle altre
+\textit{at-functions} in sez.~\ref{sec:file_openat}.
 
 Del tutto analoghe a \func{access} sono le due funzioni \funcm{euidaccess} e
 \funcm{eaccess} che ripetono lo stesso controllo usando però gli
@@ -4370,9 +4364,9 @@ file.
     \textbf{\param{mode}} & \textbf{Valore} & \textbf{Significato} \\
     \hline
     \hline
-    \const{S\_ISUID} & 04000 & Set user ID \itindex{suid~bit} bit.\\
-    \const{S\_ISGID} & 02000 & Set group ID \itindex{sgid~bit} bit.\\
-    \const{S\_ISVTX} & 01000 & Sticky \itindex{sticky~bit} bit.\\
+    \const{S\_ISUID} & 04000 & Set user ID  bit.\\
+    \const{S\_ISGID} & 02000 & Set group ID bit.\\
+    \const{S\_ISVTX} & 01000 & Sticky bit.\\
     \hline
     \const{S\_IRWXU} & 00700 & L'utente ha tutti i permessi.\\
     \const{S\_IRUSR} & 00400 & L'utente ha il permesso di lettura.\\
@@ -4409,7 +4403,7 @@ Ad esempio i permessi standard assegnati ai nuovi file (lettura e scrittura
 per il proprietario, sola lettura per il gruppo e gli altri) sono
 corrispondenti al valore ottale $0644$, un programma invece avrebbe anche il
 bit di esecuzione attivo, con un valore di $0755$, se si volesse attivare il
-bit \itindex{suid~bit} \acr{suid} il valore da fornire sarebbe $4755$.
+bit \acr{suid} il valore da fornire sarebbe $4755$.
 
 Il cambiamento dei permessi di un file eseguito attraverso queste funzioni ha
 comunque alcune limitazioni, previste per motivi di sicurezza. L'uso delle
@@ -4439,9 +4433,9 @@ in particolare accade che:
 Per alcuni filesystem\footnote{i filesystem più comuni (\textsl{ext2},
   \textsl{ext3}, \textsl{ext4}, \textsl{ReiserFS}) supportano questa
   caratteristica, che è mutuata da BSD.} è inoltre prevista un'ulteriore
-misura di sicurezza, volta 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
+misura di sicurezza, volta a scongiurare l'abuso dei 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 capacità \const{CAP\_FSETID}, vedi sez.~\ref{sec:proc_capabilities}.}
 effettui una scrittura. In questo modo anche se un utente malizioso scopre un
@@ -4603,12 +4597,11 @@ rispetto allo standard POSIX è che specificando -1 come valore
 per \param{owner} e \param{group} i valori restano immutati.
 
 Quando queste funzioni sono chiamate con successo da un processo senza i
-privilegi di amministratore entrambi i bit \itindex{suid~bit} \acr{suid} e
-\itindex{sgid~bit} \acr{sgid} vengono cancellati. Questo non avviene per il
-bit \acr{sgid} nel caso in cui esso sia usato (in assenza del corrispondente
-permesso di esecuzione) per indicare che per il file è attivo il
-\itindex{mandatory~locking} \textit{mandatory locking} (vedi
-sez.~\ref{sec:file_mand_locking}).
+privilegi di amministratore entrambi i bit \acr{suid} e \itindex{sgid~bit}
+\acr{sgid} vengono cancellati. Questo non avviene per il bit \acr{sgid} nel
+caso in cui esso sia usato (in assenza del corrispondente permesso di
+esecuzione) per indicare che per il file è attivo il \textit{mandatory
+  locking} (vedi sez.~\ref{sec:file_mand_locking}).
 
 
 \subsection{Un quadro d'insieme sui permessi}
@@ -4688,14 +4681,12 @@ Nella parte superiore di tab.~\ref{tab:file_fileperm_bits} si è riassunto il
 significato dei vari bit dei permessi per un file ordinario; per quanto
 riguarda l'applicazione dei permessi per proprietario, gruppo ed altri si
 ricordi quanto illustrato in sez.~\ref{sec:file_perm_overview}.  Per
-compattezza, nella tabella si sono specificati i bit di \itindex{suid~bit}
-\textit{suid}, \itindex{sgid~bit} \textit{sgid} e \textit{sticky}
-\itindex{sticky~bit} con la notazione illustrata anche in
+compattezza, nella tabella si sono specificati i bit di \textit{suid},
+\textit{sgid} e \textit{sticky} con la notazione illustrata anche in
 fig.~\ref{fig:file_perm_bit}.  Nella parte inferiore si sono invece riassunti
 i significati dei vari bit dei permessi per una directory; anche in questo
-caso si è riapplicato ai bit di \itindex{suid~bit} \textit{suid},
-\itindex{sgid~bit} \textit{sgid} e \textit{sticky} \itindex{sticky~bit} la
-notazione illustrata in fig.~\ref{fig:file_perm_bit}.
+caso si è riapplicato ai bit di \textit{suid}, \textit{sgid} e \textit{sticky}
+la notazione illustrata in fig.~\ref{fig:file_perm_bit}.
 
 Si ricordi infine che i permessi non hanno alcun significato per i
 collegamenti simbolici, mentre per i file di dispositivo hanno senso soltanto
@@ -6010,8 +6001,8 @@ gestione delle quote è \funcd{quotactl}, ed il suo prototipo è:
   \item[\errcode{EIO}] errore di lettura/scrittura sul file delle quote.
   \item[\errcode{EMFILE}] non si può aprire il file delle quote avendo
     superato il limite sul numero di file aperti nel sistema. 
-  \item[\errcode{ENODEV}] \param{dev} non corrisponde ad un
-    \itindex{mount~point} \textit{mount point} attivo.
+  \item[\errcode{ENODEV}] \param{dev} non corrisponde ad un \textit{mount
+      point} attivo.
   \item[\errcode{ENOPKG}] il kernel è stato compilato senza supporto per le
     quote. 
   \item[\errcode{ENOTBLK}] \param{dev} non è un dispositivo a blocchi.
@@ -6833,9 +6824,8 @@ opportuno dettagliare maggiormente.
                               per tutte le operazioni privilegiate non coperte
                               dalle precedenti \const{CAP\_DAC\_OVERRIDE} e
                               \const{CAP\_DAC\_READ\_SEARCH}.\\
-    \const{CAP\_FSETID}     & Evitare la cancellazione
-                              automatica dei bit \itindex{suid~bit} \acr{suid}
-                              e \itindex{sgid~bit} \acr{sgid} quando un file
+    \const{CAP\_FSETID}     & Evitare la cancellazione automatica dei bit
+                              \acr{suid} e \acr{sgid} quando un file
                               per i quali sono impostati viene modificato da
                               un processo senza questa capacità e la capacità
                               di impostare il bit \acr{sgid} su un file anche
@@ -6844,8 +6834,8 @@ opportuno dettagliare maggiormente.
                               sez.~\ref{sec:file_perm_management}).\\ 
     \const{CAP\_KILL}       & Mandare segnali a qualunque
                               processo (vedi sez.~\ref{sec:sig_kill_raise}).\\
-    \const{CAP\_SETFCAP}    & Impostare le \textit{capabilities} di un file (dal kernel
-                              2.6.24).\\ 
+    \const{CAP\_SETFCAP}    & Impostare le \textit{capabilities} di un file
+                              (dal kernel 2.6.24).\\ 
     \const{CAP\_SETGID}     & Manipolare i group ID dei
                               processi, sia il principale che i supplementari,
                               (vedi sez.~\ref{sec:proc_setgroups}) che quelli