Modifiche per le tabelle e un po' di cose sull'accounting
authorSimone Piccardi <piccardi@gnulinux.it>
Sun, 5 May 2002 10:59:13 +0000 (10:59 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sun, 5 May 2002 10:59:13 +0000 (10:59 +0000)
gapil.tex
ipprot.tex
system.tex

index 2dd81de..d05eb76 100644 (file)
--- a/gapil.tex
+++ b/gapil.tex
@@ -9,7 +9,7 @@
 \usepackage[latin1]{inputenc}
 \usepackage[bookmarks=true]{hyperref}
 \usepackage{makeidx}
-\usepackage{booktabs}
+%\usepackage{booktabs}
 \usepackage{pstcol}
 \usepackage{pst-node}
 \usepackage{graphicx}
index 11954fa..a28e1d6 100644 (file)
@@ -290,9 +290,11 @@ numero dei campi da 12 a 8.
 \begin{table}[htb]
   \begin{center}
   \footnotesize
-    \begin{tabular}{ l c p{8cm}}
+    \begin{tabular}{|l|c|p{8cm}|}
+      \hline
       \textbf{Nome} & \textbf{Lunghezza} & \textbf{Significato} \\
-      \toprule
+      \hline
+      \hline
       \textit{version}       &  4 bit & 
       \textsl{versione}, nel caso specifico vale sempre 6\\
       \textit{priority}      &  4 bit & 
@@ -311,7 +313,7 @@ numero dei campi da 12 a 8.
       pacchetto, se arriva a zero il pacchetto viene scartato \\
       \textit{source IP}     & 128 bit & \textsl{indirizzo di origine} \\
       \textit{destination IP}& 128 bit & \textsl{indirizzo di destinazione}\\
-      \bottomrule
+      \hline
     \end{tabular}
     \caption{Legenda per il significato dei campi dell'intestazione di IPv6}
     \label{tab:IP_ipv6field}
@@ -397,9 +399,11 @@ di IPv4 (vedi \secref{tab:IP_ipv4head}) mostra le seguenti differenze:
 \begin{table}[htb]
   \footnotesize
   \begin{center}
-    \begin{tabular}{l c p{9cm}}
+    \begin{tabular}{|l|c|p{9cm}|}
+      \hline
       \textbf{Nome} & \textbf{Lunghezza} & \textbf{Significato} \\
-      \toprule
+      \hline
+      \hline
       \textit{version}          &  4 bit & \textsl{versione}, nel caso 
       specifico vale sempre 4\\
       \textit{head lenght}      &  4 bit & \textsl{lunghezza della testata}, 
@@ -430,7 +434,7 @@ di IPv4 (vedi \secref{tab:IP_ipv4head}) mostra le seguenti differenze:
       di controllo per la testata\\
       \textit{source IP}       & 32 bit & \textsl{indirizzo di origine}\\
       \textit{destination IP}  & 32 bit & \textsl{indirizzo di destinazione}\\
-      \bottomrule
+      \hline
     \end{tabular}
     \caption{Legenda per il significato dei campi dell'intestazione di IPv4}
     \label{tab:IP_ipv4field}
@@ -629,14 +633,16 @@ i seguenti possibili valori per il \textsl{Registry Id};
 gli altri valori restano riservati per la IANA.
 \begin{table}[htb]
   \begin{center}
-    \begin{tabular}{l l l}
+    \begin{tabular}{|l|l|l|}
+      \hline
       \textbf{Regione} & \textbf{Registro} & \textbf{Id} \\
-      \toprule
+      \hline
+      \hline
       Nord America &INTERNIC & \texttt{11000} \\
       Europa & RIPE NCC & \texttt{01000} \\
       Asia & APNIC & \texttt{00100} \\
       Multi-regionale & IANA &\texttt{10000} \\
-      \bottomrule
+      \hline
     \end{tabular}
     \caption{Valori dell'identificativo dei 
       Regional Register allocati ad oggi.}
@@ -910,9 +916,11 @@ transitorio, all'interno del raggio di validit
 \begin{table}[!htb]
   \centering 
   \footnotesize
-  \begin{tabular}[c]{c l c l}
-    \multicolumn{4}{c}{\bf Gruppi di multicast} \\
-    \toprule 
+  \begin{tabular}[c]{|c|l|c|l|}
+    \hline
+    \multicolumn{4}{|c|}{\bf Gruppi di multicast} \\
+    \hline
+    \hline
     0 & riservato & 8 & organizzazione locale \\
     1 & nodo locale & 9 & non assegnato \\
     2 & collegamento locale & A & non assegnato \\
@@ -921,7 +929,7 @@ transitorio, all'interno del raggio di validit
     5 & sito locale & D & non assegnato \\
     6 & non assegnato & E & globale \\
     7 & non assegnato & F & riservato \\
-    \bottomrule
+    \hline
   \end{tabular}
 \caption{Possibili valori del campo \textsl{scop} di un indirizzo multicast.}
 \label{tab:IP_ipv6_multiscope}
@@ -1020,7 +1028,8 @@ presente; i valori possibili sono riportati in \ntab.
 \begin{table}[htb]
   \begin{center}
     \footnotesize
-    \begin{tabular}{c l l}
+    \begin{tabular}{|c|l|l|}
+      \hline
       \textbf{Valore} & \textbf{Keyword} & \textbf{Tipo di protocollo} \\
       \hline
       \hline
@@ -1042,6 +1051,7 @@ presente; i valori possibili sono riportati in \ntab.
       88 & IGRP & Internet Group Routing \\
       89 & OSPF & Open Short Path First \\
       255&      & riservato \\
+    \hline
     \end{tabular}
     \caption{Tipi di protocolli e testate di estensione}
     \label{tab:IP_ipv6_nexthead}
@@ -1113,18 +1123,18 @@ valori di priorit
 \begin{table}[htb]
   \centering
   \footnotesize
-  \begin{tabular} {c l}
-    Valore & tipo di traffico \\
-    \toprule
+  \begin{tabular}{|c|l|}
+    \hline
+    \textbf{Valore} & \textbf{Tipo di traffico} \\
+    \hline
+    \hline
     0 & traffico generico \\
     1 & traffico di riempimento (es. news) \\
     2 & trasferimento dati non interattivo (es. e-mail)\\
     3 & riservato \\
     4 & trasferimento dati interattivo (es. FTP, HTTP, NFS) \\
     5 & riservato \\
-    6 & traffico interattivo (telnet, X)\\
-    7 & traffico di controllo (routing, SNMP) \\
-    \bottomrule
+    \hline
 \end{tabular}
 \caption{Formato di un indirizzo \textit{site-local}.}
 \label{tab:priority}
index f4721d2..3671325 100644 (file)
@@ -901,7 +901,7 @@ nome del filesystem stesso.
 
 
 Le \acr{glibc} provvedono infine una serie di funzioni per la gestione dei due
-file standard \file{/etc/fstab} e \file{/etc/mtab}, che convenzionalmente sono
+pfile standard \file{/etc/fstab} e \file{/etc/mtab}, che convenzionalmente sono
 usati in quasi tutti i sistemi unix per mantenere rispettivamente le
 informazioni riguardo ai filesystem da montare e a quelli correntemente
 montati. Le funzioni servono a leggere il contenuto di questi file in
@@ -1069,15 +1069,6 @@ al database degli utenti, derivata da SVID, che per
 database che sia tenuto su un file che abbia il formato classico di
 \file{/etc/passwd}.
 
-Dato che ormai la gran parte delle distribuzioni di Linux utilizzano PAM, che
-come minimo usa almeno le \textit{shadow password}, quindi con delle modifiche
-rispetto al formato classico di \file{/etc/passwd}, le funzioni che danno la
-capacità scrivere delle voci nel database (\func{putpwent} e \func{putgrent})
-non permettono di specificarle in maniera completa. Per questo motivo l'uso di
-queste funzioni è deprecato in favore dell'uso di PAM, per cui ci limitiamo a
-elencarle in \tabref{tab:sys_passwd_func}, rimandando chi fosse interessato
-alle man page e al manuale delle \acr{glibc} per i dettagli del funzionamento.
-
 \begin{table}[htb]
   \footnotesize
   \centering
@@ -1112,6 +1103,20 @@ alle man page e al manuale delle \acr{glibc} per i dettagli del funzionamento.
   \label{tab:sys_passwd_func}
 \end{table}
 
+Dato che ormai la gran parte delle distribuzioni di Linux utilizzano PAM, che
+come minimo usa almeno le \textit{shadow password}, quindi con delle modifiche
+rispetto al formato classico di \file{/etc/passwd}, le funzioni che danno la
+capacità scrivere delle voci nel database (\func{putpwent} e \func{putgrent})
+non permettono di specificarle in maniera completa. Per questo motivo l'uso di
+queste funzioni è deprecato in favore dell'uso di PAM, per cui ci limitiamo a
+elencarle in \tabref{tab:sys_passwd_func}, rimandando chi fosse interessato
+alle man page e al manuale delle \acr{glibc} per i dettagli del funzionamento.
+
+
+
+\subsection{Il database di accounting}
+\label{sec:sys_accounting}
+
 Un altro insieme di funzioni utili è quello che permette di accedere ai dati
 del database di \textit{accounting} degli utenti, che mantiene la traccia di
 chi si è collegato al sistema e di che è correntemente collegato, insieme alle
@@ -1119,13 +1124,22 @@ informazioni, per ciascun terminale, di chi ci 
 dell'\acr{uid} della shell di login, ed una serie di altre informazioni
 relativa al sistema come il run-level, l'orario dell'ultimo riavvio, ed altre. 
 
-Le informazioni sono tenute nei due file \file{/var/run/utmp} (per chi sta
-utilizzando il sistema al momento corrente) e \file{/var/log/wtmp} (per la
-storia dei login precedenti). Questi file non devono mai essere letti
-direttamente, ma le informazioni che contengono possono essere ricavate
-attraverso le opportune funzioni di libreria. Queste sono analoghe alle
-precedenti per il database delle password, solo che la struttura del database
-è molto più complessa, dato che contiene vari tipi di informazione.
+Le informazioni vengono mantenute nei due file \file{/var/run/utmp} e
+\file{/var/log/wtmp}. Quando un utente si collega viene aggiunta una voce a
+\file{/var/run/utmp}; la voce vi resta fino al logout, quando viene cancellata
+e spostata in \file{/var/log/wtmp}.
+
+In questo modo il primo file viene utilizzato per registrare sta utilizzando
+il sistema al momento corrente, mentre il secondo mantiene la storia delle
+attività degli utenti. A quest'ultimo vengono anche aggiunte delle voci
+speciali per tenere conto dei cambiamenti di runlevel, del riavvio della
+macchina, e di altri eventi di sistema.
+
+Questi file non devono mai essere letti direttamente, ma le informazioni che
+contengono possono essere ricavate attraverso le opportune funzioni di
+libreria. Queste sono analoghe alle precedenti per il database delle password,
+solo che la struttura del database è molto più complessa, dato che contiene
+vari tipi di informazione.
 
 Le prime tre funzioni, \func{utmpname}, \func{setutent} e \func{endutent},
 servono a aprire e chiudere il database, e a specificare il file su cui esso è
@@ -1154,10 +1168,9 @@ una voce con le funzioni \func{getutent}, \func{getutid}, \func{getutline} e
 
   \funcdecl{struct utmp *getutent(void)} 
   Legge una voce dal dalla posizione corrente nel database.
-
+  
   \funcdecl{struct utmp *getutid(struct utmp *ut)} 
-  Esegue una ricerca dalla posizione corrente sulla base del contenuto di
-  \param{ut}.
+  Ricerca una voce sul database in base al contenuto di \param{ut}.
 
   \funcdecl{struct utmp *getutline(struct utmp *ut)} 
   Ricerca nel database la prima voce corrispondente ad un processo sulla linea
@@ -1204,10 +1217,14 @@ struct utmp
   \label{fig:sys_utmp_struct}
 \end{figure}
 
-Con \func{getutid} si può cercare la voce relativa ad uno specifico tipo di
-login o di runlevel, a seconda del valore del campo \var{ut\_type}
-dell'argomento \param{ut}; questo può assumere i valori riportati in 
-
+Con \func{getutid} si può cercare una voce specifica, a seconda del valore del
+campo \var{ut\_type} dell'argomento \param{ut}.  Questo può assumere i valori
+riportati in \tabref{tab:sys_ut_type}, quando assume i valori
+\macro{RUN\_LVL}, \macro{BOOT\_TIME}, \macro{OLD\_TIME}, \macro{NEW\_TIME},
+verrà restituito la prima voce che corrisponde al tipo determinato; quando
+invece assume i valori \macro{INIT\_PROCESS}, \macro{LOGIN\_PROCESS},
+\macro{USER\_PROCESS} o \macro{DEAD\_PROCESS} verrà restiuita la prima voce
+corripondente al valore del campo \var{ut\_id} specificato in \param{ut}.
 
 \begin{table}[htb]
   \footnotesize
@@ -1217,18 +1234,18 @@ dell'argomento \param{ut}; questo pu
     \textbf{Funzione} & \textbf{Significato}\\
     \hline
     \hline
-    \macro{EMPTY}        & Non contiene informazioni valide. \\
+    \macro{EMPTY}         & Non contiene informazioni valide. \\
     \macro{RUN\_LVL}      & Identica il runlevel del sistema. \\
     \macro{BOOT\_TIME}    & Identifica il tempo di avvio del sistema \\
-    \macro{OLD\_TIME}     & Identifica quando è stato modificato l'orogio di
-                           sistema. \\
-    \macro{NEW\_TIME}     & Identifica da qaunto è stato modificato il 
-                           sistema. \\
-    \macro{INIT\_PROCESS} & Identifica un processo lanciato ad \cmd{init}. \\
+    \macro{OLD\_TIME}     & Identifica quando è stato modificato l'orologio di
+                            sistema. \\
+    \macro{NEW\_TIME}     & Identifica da quanto è stato modificato il 
+                            sistema. \\
+    \macro{INIT\_PROCESS} & Identifica un processo lanciato da \cmd{init}. \\
     \macro{LOGIN\_PROCESS}& Identifica un processo di login. \\
     \macro{USER\_PROCESS} & Identifica un processo utente. \\
     \macro{DEAD\_PROCESS} & Identifica un processo terminato. \\
-    \macro{ACCOUNTING}   & ??? \\
+    \macro{ACCOUNTING}    & ??? \\
     \hline
   \end{tabular}
   \caption{Classificazione delle voci del database di accounting a seconda dei
@@ -1236,7 +1253,12 @@ dell'argomento \param{ut}; questo pu
   \label{tab:sys_ut_type}
 \end{table}
 
-
+Infine \func{getutline} esegue la ricerca sulle voci che hanno \var{ut\_type}
+uguale a \macro{LOGIN\_PROCESS} o \macro{USER\_PROCESS}, restituendo la prima
+che corrisponde al valore di \var{ut\_line}. Lo stesso criterio di ricerca è
+usato da \func{pututline} per trovare uno spazio dove inserire la voce
+specificata, qualora non sia trovata la voce viene aggiunta in coda al
+database.
 
 
 \section{Limitazione ed uso delle risorse}