Rimesse a posto un sacco di referenze, figure, etc.
[gapil.git] / filedir.tex
index 592440e2f7fe946db15d6005db088721d51f0775..c071ecaac899423d1b984aa7eb60bcb347a8049e 100644 (file)
@@ -583,7 +583,7 @@ riservati per estensioni come tempi pi
   \footnotesize
   \centering
   \begin{minipage}[c]{15cm}
-    \begin{lstlisting}[]{}
+    \begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
 struct stat {
     dev_t         st_dev;      /* device */
     ino_t         st_ino;      /* inode */
@@ -692,7 +692,7 @@ memorizzato il tipo di files, mentre gli altri possono essere usati per
 effettuare delle selezioni sul tipo di file voluto, combinando opportunamente
 i vari flag; ad esempio se si volesse controllare se un file è una directory o
 un file ordinario si potrebbe definire la condizione:
-\begin{lstlisting}{}
+\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
 #define IS_FILE_DIR(x) ( ((x) & S_IFMT) & (S_IFDIR | S_IFREG) )
 \end{lstlisting}
 in cui prima si estraggono da \var{st\_mode} i bit relativi al tipo di file e
@@ -775,10 +775,15 @@ dei relativi campi 
 \begin{table}[htb]
   \centering
   \begin{tabular}[c]{|c|l|l|c|}
+    \hline
+    Membro & Significato & Funzione&opzione \\
+    \hline
+    \hline
     \var{st\_atime}& ultimo accesso ai dati del file &\func{read}& \cmd{-u}\\ 
     \var{st\_mtime}& ultima modifica ai dati del file &\func{write}& default\\ 
     \var{st\_ctime}& ultima modifica ai dati dell'inode&\func{chmod}, 
     \func{utime} & \cmd{-c} \\ 
+    \hline
   \end{tabular}
   \caption{I tre tempi associati a ciascun file}
   \label{tab:filedir_file_times}
@@ -824,10 +829,13 @@ cambiarne i permessi ha effetti solo sui tempi del file.
   \footnotesize
   \begin{tabular}[c]{|l|c|c|c|c|c|c|l|}
     \hline
-    Funzione & \multicolumn{3}{c}{File o directory} 
-    &\multicolumn{3}{c}{Directory genitrice} &Note \\
-    Funzione & \multicolumn{3}{c}{di riferimento} & 
-    \multicolumn{3}{c}{del riferimento} \\
+    \multicolumn{1}{|c|}{Funzione} 
+    &\multicolumn{3}{p{2cm}}{File o directory di riferimento}
+    &\multicolumn{3}{p{2cm}}{Directory genitrice del riferimento} 
+    &\multicolumn{1}{|c|}{Note} \\
+    \cline{2-7}
+    &  \textsl{(a)} &  \textsl{(m)}&  \textsl{(c)} 
+    &  \textsl{(a)} &  \textsl{(m)}&  \textsl{(c)}& \\
     \hline
     \hline
     \func{chmod}, \func{fchmod} 
@@ -907,7 +915,7 @@ qual caso \var{errno} 
 \end{prototype}
  
 La struttura \var{utimebuf} usata da \func{utime} è definita come:
-\begin{lstlisting}{}
+\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
 struct utimbuf {
         time_t actime;  /* access time */
         time_t modtime; /* modification time */
@@ -916,18 +924,18 @@ struct utimbuf {
 
 L'effetto della funzione e i privilegi necessari per eseguirla dipendono da
 cosa è l'argomento \var{times}; se è \textit{NULL} la funzione setta il tempo
-corrente e basta l'accesso in scrittura al file; se invece si è specificato un
-valore la funzione avrà successo solo se si è proprietari del file (o si hanno
-i privilegi di amministratore).
+corrente ed è sufficiente avere accesso in scrittura al file; se invece si è
+specificato un valore la funzione avrà successo solo se si è proprietari del
+file (o si hanno i privilegi di amministratore).
 
 Si tenga presente che non è comunque possibile specificare il tempo di
-cambiamento di stato del file, che viene comunque cambiato dal kernel anche
-alla chiamata di \func{utime}; questo serve acnhe come misura di sicurezza per
-evitare che si possa modificare un file nascondendo completamente le proprie
-tracce.  In realtà la cosa resta possibile, se si è in grado di accedere al
-device, scrivendo direttamente sul disco senza passare attraverso il
-filesystem, ma ovviamente è molto più complicato da realizzare.
-
+cambiamento di stato del file, che viene comunque cambiato dal kernel tutte le
+volte che si modifica l'inode (quindi anche alla chiamata di \func{utime}).
+Questo serve anche come misura di sicurezza per evitare che si possa
+modificare un file nascondendo completamente le proprie tracce.  In realtà la
+cosa resta possibile, se si è in grado di accedere al device, scrivendo
+direttamente sul disco senza passare attraverso il filesystem, ma ovviamente è
+molto più complicato da realizzare.
 
 
 \section{Il controllo di accesso ai file}
@@ -974,8 +982,6 @@ pertanto accesso senza restrizione a qualunque file del sistema.
 % elementare qui; inoltre ad un processo sono associati diversi identificatori,
 % torneremo su questo in maggiori dettagli in seguito in \secref{sec:proc_perms}.
 
-
-
 \subsection{I flag \texttt{suid} e \texttt{sgid}}
 \label{sec:filedir_suid_sgid}