X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=prochand.tex;h=c5e1c0f22feb6453d37b74ad5c7896070f094d63;hp=099e98b622b2d26eeeaee6138664eec4231b0a05;hb=f2e24e170e8ad0d5d1194f492e5cb1349ebe5622;hpb=936ae71ad2a06b154b23470ef38f477af32e67fe diff --git a/prochand.tex b/prochand.tex index 099e98b..c5e1c0f 100644 --- a/prochand.tex +++ b/prochand.tex @@ -599,9 +599,8 @@ Oltre ai file aperti i processi figli ereditano dal padre una serie di altre proprietà; la lista dettagliata delle proprietà che padre e figlio hanno in comune dopo l'esecuzione di una \func{fork} è la seguente: \begin{itemize*} -\item i file aperti e gli eventuali flag di \itindex{close-on-exec} - \textit{close-on-exec} impostati (vedi sez.~\ref{sec:proc_exec} e - sez.~\ref{sec:file_fcntl_ioctl}); +\item i file aperti e gli eventuali flag di \textit{close-on-exec} impostati + (vedi sez.~\ref{sec:proc_exec} e sez.~\ref{sec:file_fcntl_ioctl}); \item gli identificatori per il controllo di accesso: l'\textsl{user-ID reale}, il \textsl{group-ID reale}, l'\textsl{user-ID effettivo}, il \textsl{group-ID effettivo} ed i \textsl{group-ID supplementari} (vedi @@ -613,7 +612,7 @@ comune dopo l'esecuzione di una \func{fork} è la seguente: (vedi sez.~\ref{sec:file_work_dir} e sez.~\ref{sec:file_chroot}); \item la maschera dei permessi di creazione dei file (vedi sez.~\ref{sec:file_perm_management}); -\item la \index{maschera~dei~segnali} maschera dei segnali bloccati (vedi +\item la maschera dei segnali bloccati (vedi sez.~\ref{sec:sig_sigmask}) e le azioni installate (vedi sez.~\ref{sec:sig_gen_beha}); \item i segmenti di memoria condivisa agganciati al processo (vedi @@ -1125,11 +1124,10 @@ restituito da entrambe le funzioni dipende dall'implementazione, ma tradizionalmente gli 8 bit meno significativi sono riservati per memorizzare lo \itindex{exit~status} stato di uscita del processo, e gli altri per indicare il segnale che ha causato la terminazione (in caso di conclusione -anomala), uno per indicare se è stato generato un \itindex{core~dump} -\textit{core dump} (vedi sez.~\ref{sec:sig_standard}), ecc.\footnote{le - definizioni esatte si possono trovare in \file{} ma - questo file non deve mai essere usato direttamente, esso viene incluso - attraverso \file{}.} +anomala), uno per indicare se è stato generato un \textit{core dump} (vedi +sez.~\ref{sec:sig_standard}), ecc.\footnote{le definizioni esatte si possono + trovare in \file{} ma questo file non deve mai essere + usato direttamente, esso viene incluso attraverso \file{}.} \begin{table}[!htb] \centering @@ -1159,7 +1157,7 @@ anomala), uno per indicare se è stato generato un \itindex{core~dump} \val{WIFSIGNALED} ha restituito un valore non nullo.\\ \macro{WCOREDUMP}\texttt{(s)} & Vera se il processo terminato ha - generato un file di \itindex{core~dump} + generato un file di \textit{core dump}; può essere valutata solo se \val{WIFSIGNALED} ha restituito un valore non nullo.\footnotemark \\ @@ -1319,7 +1317,7 @@ campi: \const{CLD\_DUMPED} a indicare la ragione del ritorno della funzione, il cui significato è, nell'ordine: uscita normale, terminazione da segnale, processo fermato, processo riavviato, processo terminato in - \itindex{core~dump} \textit{core dump} (vedi sez.~\ref{sec:sig_standard}). + \textit{core dump} (vedi sez.~\ref{sec:sig_standard}). \end{basedescript} Infine Linux, seguendo un'estensione di BSD, supporta altre due funzioni per @@ -1559,8 +1557,7 @@ seguente: % TODO ===========Importante============= % TODO questo sotto è incerto, verificare % TODO ===========Importante============= -\item la \index{maschera~dei~segnali} maschera dei segnali (si veda - sez.~\ref{sec:sig_sigmask}). +\item la maschera dei segnali (si veda sez.~\ref{sec:sig_sigmask}). \end{itemize*} Una serie di proprietà del processo originale, che non avrebbe senso mantenere @@ -1621,18 +1618,23 @@ nell'esecuzione della funzione \func{exec}, queste sono: localizzazione al valore di default POSIX. \end{itemize*} +\itindbeg{close-on-exec} + La gestione dei file aperti nel passaggio al nuovo programma lanciato con -\func{exec} dipende dal valore che ha il flag di \itindex{close-on-exec} -\textit{close-on-exec} (vedi sez.~\ref{sec:file_fcntl_ioctl}) per ciascun -\textit{file descriptor}. I file per cui è impostato vengono chiusi, tutti gli -altri file restano aperti. Questo significa che il comportamento predefinito è -che i file restano aperti attraverso una \func{exec}, a meno di una chiamata -esplicita a \func{fcntl} che imposti il suddetto flag. Per le directory, lo -standard POSIX.1 richiede che esse vengano chiuse attraverso una \func{exec}, -in genere questo è fatto dalla funzione \func{opendir} (vedi +\func{exec} dipende dal valore che ha il flag di \textit{close-on-exec} (vedi +sez.~\ref{sec:file_fcntl_ioctl}) per ciascun \textit{file descriptor}. I file +per cui è impostato vengono chiusi, tutti gli altri file restano +aperti. Questo significa che il comportamento predefinito è che i file restano +aperti attraverso una \func{exec}, a meno di una chiamata esplicita a +\func{fcntl} che imposti il suddetto flag. Per le directory, lo standard +POSIX.1 richiede che esse vengano chiuse attraverso una \func{exec}, in genere +questo è fatto dalla funzione \func{opendir} (vedi sez.~\ref{sec:file_dir_read}) che effettua da sola l'impostazione del flag di -\itindex{close-on-exec} \textit{close-on-exec} sulle directory che apre, in -maniera trasparente all'utente. +\textit{close-on-exec} sulle directory che apre, in maniera trasparente +all'utente. + +\itindend{close-on-exec} + Il comportamento della funzione in relazione agli identificatori relativi al controllo di accesso verrà trattato in dettaglio in sez.~\ref{sec:proc_perms}, @@ -3642,29 +3644,28 @@ momento:\footnote{alla stesura di questa sezione, cioè con il kernel 3.2.} \item[\const{PR\_SET\_DUMPABLE}] Imposta il flag che determina se la terminazione di un processo a causa di un segnale per il quale è prevista la - generazione di un file di \itindex{core~dump} \textit{core dump} (vedi + generazione di un file di \textit{core dump} (vedi sez.~\ref{sec:sig_standard}) lo genera effettivamente. In genere questo flag viene attivato automaticamente, ma per evitare problemi di sicurezza (la generazione di un file da parte di processi privilegiati può essere usata per sovrascriverne altri) viene cancellato quando si mette in esecuzione un programma con i bit \acr{suid} e \acr{sgid} attivi (vedi sez.~\ref{sec:file_special_perm}) o con l'uso delle funzioni per la modifica - degli \ids{UID} dei processi (vedi sez.~\ref{sec:proc_setuid}). + degli \ids{UID} dei processi (vedi sez.~\ref{sec:proc_setuid}). L'operazione è stata introdotta a partire dal kernel 2.3.20, fino al kernel 2.6.12 e per i kernel successivi al 2.6.17 era possibile usare solo un valore 0 di \param{arg2} per disattivare il flag ed un valore 1 per attivarlo. Nei kernel dal 2.6.13 al 2.6.17 è stato supportato anche il - valore 2, che causava la generazione di un \itindex{core~dump} \textit{core - dump} leggibile solo dall'amministratore, ma questa funzionalità è stata - rimossa per motivi di sicurezza, in quanto consentiva ad un utente normale - di creare un file di \textit{core dump} appartenente all'amministratore in - directory dove l'utente avrebbe avuto permessi di accesso. + valore 2, che causava la generazione di un \textit{core dump} leggibile solo + dall'amministratore, ma questa funzionalità è stata rimossa per motivi di + sicurezza, in quanto consentiva ad un utente normale di creare un file di + \textit{core dump} appartenente all'amministratore in directory dove + l'utente avrebbe avuto permessi di accesso. \item[\const{PR\_GET\_DUMPABLE}] Ottiene come valore di ritorno della funzione lo stato corrente del flag che controlla la effettiva generazione dei - \itindex{core~dump} \textit{core dump}. Introdotta a partire dal kernel - 2.3.20. + \textit{core dump}. Introdotta a partire dal kernel 2.3.20. \item[\const{PR\_SET\_ENDIAN}] Imposta la \itindex{endianness} \textit{endianness} del processo chiamante secondo il valore fornito