From c3693d1ea04bf85054e11ef98c244f000656b845 Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Thu, 27 Dec 2001 09:48:29 +0000 Subject: [PATCH] Correzioni alle figure e scritto un po' di chroot e tmpnam --- filedir.tex | 12 ++++++++++++ fileintro.tex | 2 +- img/filedup.dia | Bin 2990 -> 2886 bytes img/filemultacc.dia | Bin 3978 -> 3777 bytes img/fileshar.dia | Bin 3852 -> 3752 bytes img/procfile.dia | Bin 3859 -> 3837 bytes 6 files changed, 13 insertions(+), 1 deletion(-) diff --git a/filedir.tex b/filedir.tex index df14491..3553486 100644 --- a/filedir.tex +++ b/filedir.tex @@ -1740,3 +1740,15 @@ che per il file %completo vedi \ntab), i permessi (vedi \secref{sec:file_perms}), le date (vedi %\secref{sec:file_times}). +\subsection{La funzione \func{chroot}} +\label{sec:file_chroot} + +Benché non abbia niente a che fare con permessi, utenti e gruppi, questa +funzione viene usata spesso per limitare le capacità dei programmi, ed è +pertanto pertinente al controllo di accesso. Come accennato in +\secref{sec:proc_fork} ogni processo oltre ad una directory di lavoro +corrente, ha anche una directory radice, cioè una directory che per il +processo costituisce la radice dell'albero del filesystem. + +In generale questa directory coincide con la + diff --git a/fileintro.tex b/fileintro.tex index cf0e674..3715f89 100644 --- a/fileintro.tex +++ b/fileintro.tex @@ -108,7 +108,7 @@ permessi devono consentire l'accesso. Se il pathname comincia per \file{/} la ricerca parte dalla directory radice del processo; questa, a meno di un \textit{chroot} (su cui torneremo in -seguito, vedi \secref{sec:xxx_chroot}) è la stessa per tutti i processi ed +seguito, vedi \secref{sec:file_chroot}) è la stessa per tutti i processi ed equivale alla directory radice dell'albero (come descritto in \secref{sec:file_organization}): in questo caso si parla di un pathname \textsl{assoluto}. Altrimenti la ricerca parte dalla directory corrente (su diff --git a/img/filedup.dia b/img/filedup.dia index 9519a40d0b79286e9a41989eaade173efaec432c..076627fb96811ff4e284124b76f0feb127b41cbe 100644 GIT binary patch literal 2886 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 literal 2990 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 rJsHe&|n literal 3978 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 GF#!OMLQEL| delta 3843 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 F0RV>2hLivR diff --git a/img/procfile.dia b/img/procfile.dia index 565d955e23e09792f7d784ef985ce2e0cf560e6e..2a8948f6e1af9e4e9284024f4261c506f8994520 100644 GIT binary patch literal 3837 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 Vi~RRv8a;pg^nVaq!OZYi0RVm(fUE!j -- 2.30.2