Correzioni per execve e setuid.
[gapil.git] / system.tex
index 2b464a5e6d0b97fec87a8d489fbc35a2f984ac94..31ce9b2545c7be8382ab61ed86abfb475b8910e0 100644 (file)
@@ -1,6 +1,6 @@
 %% system.tex
 %%
 %% system.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 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",
 %% 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",
@@ -192,30 +192,30 @@ file, riportate in tab.~\ref{tab:sys_file_macro}.
     \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
     \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\
     \hline
     \hline
-    \constd{\_POSIX\_ARG\_MAX}   & 4096& Dimensione massima degli argomenti
+    \macrod{\_POSIX\_ARG\_MAX}   & 4096& Dimensione massima degli argomenti
                                          passati ad una funzione della famiglia
                                          \func{exec}.\\ 
                                          passati ad una funzione della famiglia
                                          \func{exec}.\\ 
-    \constd{\_POSIX\_CHILD\_MAX} &    6& Numero massimo di processi
+    \macrod{\_POSIX\_CHILD\_MAX} &    6& Numero massimo di processi
                                          contemporanei che un utente può 
                                          eseguire.\\
                                          contemporanei che un utente può 
                                          eseguire.\\
-    \constd{\_POSIX\_OPEN\_MAX}  &   16& Numero massimo di file che un processo
+    \macrod{\_POSIX\_OPEN\_MAX}  &   16& Numero massimo di file che un processo
                                          può mantenere aperti in 
                                          contemporanea.\\
                                          può mantenere aperti in 
                                          contemporanea.\\
-    \constd{\_POSIX\_STREAM\_MAX}&    8& Massimo numero di stream aperti per
+    \macrod{\_POSIX\_STREAM\_MAX}&    8& Massimo numero di stream aperti per
                                          processo in contemporanea.\\
                                          processo in contemporanea.\\
-    \constd{\_POSIX\_TZNAME\_MAX}&    6& Dimensione massima del nome di una
+    \macrod{\_POSIX\_TZNAME\_MAX}&    6& Dimensione massima del nome di una
                                          \textit{timezone}
                                          (vedi sez.~\ref{sec:sys_date}). \\ 
                                          \textit{timezone}
                                          (vedi sez.~\ref{sec:sys_date}). \\ 
-    \constd{\_POSIX\_RTSIG\_MAX} &    8& Numero massimo di segnali
+    \macrod{\_POSIX\_RTSIG\_MAX} &    8& Numero massimo di segnali
                                          \textit{real-time} (vedi
                                          sez.~\ref{sec:sig_real_time}).\\
                                          \textit{real-time} (vedi
                                          sez.~\ref{sec:sig_real_time}).\\
-    \constd{\_POSIX\_NGROUPS\_MAX}&   0& Numero di gruppi supplementari per
+    \macrod{\_POSIX\_NGROUPS\_MAX}&   0& Numero di gruppi supplementari per
                                          processo (vedi 
                                          sez.~\ref{sec:proc_access_id}).\\
                                          processo (vedi 
                                          sez.~\ref{sec:proc_access_id}).\\
-    \constd{\_POSIX\_SSIZE\_MAX} &32767& Valore massimo del tipo 
+    \macrod{\_POSIX\_SSIZE\_MAX} &32767& Valore massimo del tipo 
                                          \type{ssize\_t}.\\
                                          \type{ssize\_t}.\\
-    % \const{\_POSIX\_AIO\_LISTIO\_MAX}&2& \\
-    % \const{\_POSIX\_AIO\_MAX}    &    1& \\
+    % \macrod{\_POSIX\_AIO\_LISTIO\_MAX}&2& \\
+    % \macrod{\_POSIX\_AIO\_MAX}    &    1& \\
     \hline                
   \end{tabular}
   \caption{Macro dei valori minimi di alcune caratteristiche generali del
     \hline                
   \end{tabular}
   \caption{Macro dei valori minimi di alcune caratteristiche generali del
@@ -357,7 +357,7 @@ relative spiegazioni, si può trovare nel manuale delle \acr{glibc}.
                                   Indica se il sistema supporta i
                                   \textit{saved id} (vedi
                                   sez.~\ref{sec:proc_access_id}).\\  
                                   Indica se il sistema supporta i
                                   \textit{saved id} (vedi
                                   sez.~\ref{sec:proc_access_id}).\\  
-      \texttt{\_SC\_VERSION}    & \const{\_POSIX\_VERSION} &
+      \texttt{\_SC\_VERSION}    & \macro{\_POSIX\_VERSION} &
                                   Indica il mese e l'anno di approvazione
                                   della revisione dello standard POSIX.1 a cui
                                   il sistema fa riferimento, nel formato
                                   Indica il mese e l'anno di approvazione
                                   della revisione dello standard POSIX.1 a cui
                                   il sistema fa riferimento, nel formato
@@ -617,7 +617,7 @@ dall'argomento \param{info}.
 
 \begin{figure}[!ht!b]
   \footnotesize \centering
 
 \begin{figure}[!ht!b]
   \footnotesize \centering
-  \begin{minipage}[c]{0.8\textwidth}
+  \begin{minipage}[c]{0.85\textwidth}
     \includestruct{listati/ustname.h}
   \end{minipage}
   \normalsize 
     \includestruct{listati/ustname.h}
   \end{minipage}
   \normalsize 
@@ -654,9 +654,9 @@ fig.~\ref{fig:sys_utsname}, solo se si è definita la macro
 Come accennato queste stesse informazioni, anche se a differenza di
 \func{sysctl} la funzione continua ad essere mantenuta, si possono ottenere
 direttamente tramite il filesystem \file{/proc}, esse infatti sono mantenute
 Come accennato queste stesse informazioni, anche se a differenza di
 \func{sysctl} la funzione continua ad essere mantenuta, si possono ottenere
 direttamente tramite il filesystem \file{/proc}, esse infatti sono mantenute
-rispettivamente nei file \sysctlrelfile{kernel}{ostype},
-\sysctlrelfile{kernel}{hostname}, \sysctlrelfile{kernel}{osrelease},
-\sysctlrelfile{kernel}{version} e \sysctlrelfile{kernel}{domainname} che si
+rispettivamente nei file \sysctlrelfiled{kernel}{ostype},
+\sysctlrelfiled{kernel}{hostname}, \sysctlrelfiled{kernel}{osrelease},
+\sysctlrelfiled{kernel}{version} e \sysctlrelfiled{kernel}{domainname} che si
 trovano sotto la directory \file{/proc/sys/kernel/}.
 
 \index{file!filesystem~\texttt  {/proc}!definizione|)}
 trovano sotto la directory \file{/proc/sys/kernel/}.
 
 \index{file!filesystem~\texttt  {/proc}!definizione|)}
@@ -1094,12 +1094,12 @@ corrispondente al valore del campo \var{ut\_id} specificato in \param{ut}.
   \label{tab:sys_ut_type}
 \end{table}
 
   \label{tab:sys_ut_type}
 \end{table}
 
-La funzione \func{getutline} esegue la ricerca sulle voci che hanno
-\var{ut\_type} uguale a \const{LOGIN\_PROCESS} o \const{USER\_PROCESS},
-restituendo la prima che corrisponde al valore di \var{ut\_line}, che
-specifica il dispositivo di terminale che interessa, da indicare senza il
-\file{/dev/} iniziale. Lo stesso criterio di ricerca è usato da
-\func{pututline} per trovare uno spazio dove inserire la voce specificata;
+La funzione \func{getutline} esegue la ricerca sulle voci che hanno un
+\var{ut\_type} con valore uguale a \const{LOGIN\_PROCESS} o
+\const{USER\_PROCESS}, restituendo la prima che corrisponde al valore di
+\var{ut\_line}, che specifica il dispositivo di terminale che interessa, da
+indicare senza il \file{/dev/} iniziale. Lo stesso criterio di ricerca è usato
+da \func{pututline} per trovare uno spazio dove inserire la voce specificata;
 qualora questo spazio non venga trovato la voce viene aggiunta in coda al
 registro.
 
 qualora questo spazio non venga trovato la voce viene aggiunta in coda al
 registro.
 
@@ -1404,13 +1404,15 @@ cosiddetta ibernazione in RAM.
 % TODO documentare la Crypto API del kernel
 
 % TODO documentare la syscall getrandom, introdotta con il kernel 3.17, vedi
 % TODO documentare la Crypto API del kernel
 
 % TODO documentare la syscall getrandom, introdotta con il kernel 3.17, vedi
-% http://lwn.net/Articles/606141/ 
+% http://lwn.net/Articles/606141/, ed introdotta con le glibc solo con la
+% versione 2.25, vedi https://lwn.net/Articles/711013/
 
 %\subsection{La gestione delle chiavi crittografiche}
 %\label{sec:keyctl_management}
 
 %TODO non è chiaro se farlo qui, ma documentare la syscall bpf aggiunta con il
 
 %\subsection{La gestione delle chiavi crittografiche}
 %\label{sec:keyctl_management}
 
 %TODO non è chiaro se farlo qui, ma documentare la syscall bpf aggiunta con il
-%kernel 3.18, vedi http://lwn.net/Articles/612878/
+% kernel 3.18, vedi http://lwn.net/Articles/612878/; al riguardo vedi anche
+% https://lwn.net/Articles/660331/ 
 
 \section{Il controllo dell'uso delle risorse}
 \label{sec:sys_res_limits}
 
 \section{Il controllo dell'uso delle risorse}
 \label{sec:sys_res_limits}
@@ -2019,7 +2021,7 @@ informazioni vengono salvate in formato binario, e corrispondono al contenuto
 della apposita struttura dati definita all'interno del kernel.
 
 Il funzionamento di \func{acct} viene inoltre modificato da uno specifico
 della apposita struttura dati definita all'interno del kernel.
 
 Il funzionamento di \func{acct} viene inoltre modificato da uno specifico
-parametro di sistema, modificabile attraverso \sysctlfile{kernel/acct} (o
+parametro di sistema, modificabile attraverso \sysctlfiled{kernel/acct} (o
 tramite la corrispondente \func{sysctl}). Esso contiene tre valori interi, il
 primo indica la percentuale di spazio disco libero sopra il quale viene
 ripresa una registrazione che era stata sospesa per essere scesi sotto il
 tramite la corrispondente \func{sysctl}). Esso contiene tre valori interi, il
 primo indica la percentuale di spazio disco libero sopra il quale viene
 ripresa una registrazione che era stata sospesa per essere scesi sotto il
@@ -2294,10 +2296,10 @@ il comportamento è stato adeguato allo standard a partire dalla versione
 2.6.9.
 
 A differenza di quanto avviene per \func{clock} i valori restituiti nei campi
 2.6.9.
 
 A differenza di quanto avviene per \func{clock} i valori restituiti nei campi
-di una struttura \struct{tms} sono misurati in numero di 
-\textit{clock tick} effettivi e non in multipli di \const{CLOCKS\_PER\_SEC},
-pertanto per ottenere il valore effettivo in secondi occorrerà dividere per il
-risultato di \code{sysconf(\_SC\_CLK\_TCK)}.
+di una struttura \struct{tms} sono misurati in numero di \textit{clock tick}
+effettivi e non in multipli di \const{CLOCKS\_PER\_SEC}, pertanto per ottenere
+il valore effettivo del tempo in secondi occorrerà dividere per il risultato
+di \code{sysconf(\_SC\_CLK\_TCK)}.
 
 Lo stesso vale per il valore di ritorno della funzione, il cui significato fa
 riferimento ad un tempo relativo ad un certo punto nel passato la cui
 
 Lo stesso vale per il valore di ritorno della funzione, il cui significato fa
 riferimento ad un tempo relativo ad un certo punto nel passato la cui
@@ -3225,7 +3227,7 @@ che errori relativi alla stessa linea non vengano ripetuti.
 % LocalWords:  newlen ENOTDIR EINVAL ENOMEM linux array oldvalue paging stack
 % LocalWords:  TCP shell Documentation ostype hostname osrelease version mount
 % LocalWords:  const source filesystemtype mountflags ENODEV ENOTBLK block read
 % LocalWords:  newlen ENOTDIR EINVAL ENOMEM linux array oldvalue paging stack
 % LocalWords:  TCP shell Documentation ostype hostname osrelease version mount
 % LocalWords:  const source filesystemtype mountflags ENODEV ENOTBLK block read
-% LocalWords:  device EBUSY only EACCES NODEV ENXIO major RTSIG syscall PID NSS
+% LocalWords:  device EBUSY only EACCES NODEV ENXIO major RTSIG syscall PID 
 % LocalWords:  number EMFILE dummy ENAMETOOLONG ENOENT ELOOP virtual devfs MGC
 % LocalWords:  magic MSK RDONLY NOSUID suid sgid NOEXEC SYNCHRONOUS REMOUNT MNT
 % LocalWords:  MANDLOCK mandatory locking WRITE APPEND append IMMUTABLE NOATIME
 % LocalWords:  number EMFILE dummy ENAMETOOLONG ENOENT ELOOP virtual devfs MGC
 % LocalWords:  magic MSK RDONLY NOSUID suid sgid NOEXEC SYNCHRONOUS REMOUNT MNT
 % LocalWords:  MANDLOCK mandatory locking WRITE APPEND append IMMUTABLE NOATIME