Correzioni
authorSimone Piccardi <piccardi@gnulinux.it>
Fri, 27 Jan 2012 02:28:31 +0000 (02:28 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Fri, 27 Jan 2012 02:28:31 +0000 (02:28 +0000)
filedir.tex

index e84514dcd2933c862d9742431bea2779939df3e9..11a25fc9d650e1cd85d7afe1497dcccd5c1d542f 100644 (file)
@@ -5406,7 +5406,7 @@ attraverso una chiamata alla funzione \funcd{acl\_free}, il cui prototipo è:
 }
 
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
 }
 
 {La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
-  caso \var{errno} assumerà il valore:
+  caso \var{errno} può assumere solo il valore:
   \begin{errlist}
   \item[\errcode{EINVAL}] \param{obj\_p} non è valido.
   \end{errlist}
   \begin{errlist}
   \item[\errcode{EINVAL}] \param{obj\_p} non è valido.
   \end{errlist}
@@ -5471,8 +5471,8 @@ di permessi ordinari, il prototipo della funzione è:
 }
 
 {La funzione ritorna un oggetto di tipo \type{acl\_t} in caso di successo e
 }
 
 {La funzione ritorna un oggetto di tipo \type{acl\_t} in caso di successo e
-  \val{NULL} per un errore, nel qual caso \var{errno} potra assumere
-  solo il valore \errval{ENOMEM} nel suo significato generico.}
+  \val{NULL} per un errore, nel qual caso \var{errno} può assumere solo
+  il valore \errval{ENOMEM}.}
 \end{funcproto}
 
 
 \end{funcproto}
 
 
@@ -5501,12 +5501,14 @@ sono:
   dei valori:
   \begin{errlist}
   \item[\errcode{ENOMEM}] non c'è memoria sufficiente per allocare i dati.
   dei valori:
   \begin{errlist}
   \item[\errcode{ENOMEM}] non c'è memoria sufficiente per allocare i dati.
+  \item[\errcode{EINVAL}] \param{type} non ha un valore valido (solo per
+    \func{acl\_get\_file}).
   \item[\errcode{ENOTSUP}] il filesystem cui fa riferimento il file non
     supporta le ACL.
   \end{errlist}
   \item[\errcode{ENOTSUP}] il filesystem cui fa riferimento il file non
     supporta le ACL.
   \end{errlist}
-  ed inoltre \errval{EBADF} per \func{acl\_get\_fd}, ed \errval{EINVAL} per
-  valori scorretti di \param{type} e tutti i possibili errori per l'accesso ad
-  un file per \func{acl\_get\_file}. }
+  ed inoltre \errval{EBADF} per \func{acl\_get\_fd}, e \errval{EACCES},
+  \errval{ENAMETOOLONG}, \errval{ENOENT}, \errval{ENOTDIR}, per
+  \func{acl\_get\_file}. }
 \end{funcproto}
 
 Le due funzioni ritornano, con un oggetto di tipo \type{acl\_t}, il valore
 \end{funcproto}
 
 Le due funzioni ritornano, con un oggetto di tipo \type{acl\_t}, il valore
@@ -5560,8 +5562,7 @@ testuale con la funzione  \funcd{acl\_from\_text}, il cui prototipo è:
   \item[\errcode{EINVAL}] la rappresentazione testuale all'indirizzo
     \param{buf\_p} non è valida.
    \end{errlist}
   \item[\errcode{EINVAL}] la rappresentazione testuale all'indirizzo
     \param{buf\_p} non è valida.
    \end{errlist}
-  ed inoltre 
-nel loro significato generico.}  
+}
 \end{funcproto}
 
 La funzione prende come argomento il puntatore ad un buffer dove si è inserita
 \end{funcproto}
 
 La funzione prende come argomento il puntatore ad un buffer dove si è inserita
@@ -5586,7 +5587,17 @@ permessi sono espressi con una tripletta di lettere analoga a quella usata per
 i permessi dei file.\footnote{vale a dire ``\texttt{r}'' per il permesso di
   lettura, ``\texttt{w}'' per il permesso di scrittura, ``\texttt{x}'' per il
   permesso di esecuzione (scritti in quest'ordine) e ``\texttt{-}'' per
 i permessi dei file.\footnote{vale a dire ``\texttt{r}'' per il permesso di
   lettura, ``\texttt{w}'' per il permesso di scrittura, ``\texttt{x}'' per il
   permesso di esecuzione (scritti in quest'ordine) e ``\texttt{-}'' per
-  l'assenza del permesso.}
+  l'assenza del permesso.} 
+
+Un possibile esempio di rappresentazione della ACL di un file ordinario a cui,
+oltre ai permessi ordinari, si è aggiunto un altro utente con un accesso in
+lettura, è il seguente:
+\begin{Example}
+user::rw-
+group::r--
+other::r--
+user:piccardi:r--
+\end{Example}
 
 Va precisato che i due tipi \texttt{user} e \texttt{group} sono usati
 rispettivamente per indicare delle voci relative ad utenti e
 
 Va precisato che i due tipi \texttt{user} e \texttt{group} sono usati
 rispettivamente per indicare delle voci relative ad utenti e
@@ -5606,8 +5617,8 @@ iniziali dei valori usati nella forma estesa (cioè ``\texttt{u}'',
 voce sono le stesse. In questo caso non sono consentiti permessi.
 
 Per la conversione inversa, che consente di ottenere la rappresentazione
 voce sono le stesse. In questo caso non sono consentiti permessi.
 
 Per la conversione inversa, che consente di ottenere la rappresentazione
-testuale di una ACL, sono invece disponibili due funzioni, la prima delle due,
-di uso più immediato, è \funcd{acl\_to\_text}, il cui prototipo è:
+testuale di una ACL, sono invece disponibili due funzioni. La prima delle due,
+di uso più immediato, è \funcd{acl\_to\_text}, ed il suo prototipo è:
 
 \begin{funcproto}{
 \fhead{sys/types.h}
 
 \begin{funcproto}{
 \fhead{sys/types.h}
@@ -5635,9 +5646,10 @@ intera in questa verrà restituita (come \itindex{value~result~argument}
 \textit{value result argument}) la dimensione della stringa con la
 rappresentazione testuale, non comprendente il carattere nullo finale.
 
 \textit{value result argument}) la dimensione della stringa con la
 rappresentazione testuale, non comprendente il carattere nullo finale.
 
-La seconda funzione, \funcd{acl\_to\_any\_text}, permette di controllare con
-dovizia di dettagli la generazione della stringa contenente la
-rappresentazione testuale della ACL, il suo prototipo è:
+La seconda funzione, che permette di controllare con dovizia di dettagli la
+generazione della stringa contenente la rappresentazione testuale della ACL, è
+\funcd{acl\_to\_any\_text}, ed il suo prototipo è:
+
 \begin{funcproto}{
 \fhead{sys/types.h}
 \fhead{sys/acl.h}
 \begin{funcproto}{
 \fhead{sys/types.h}
 \fhead{sys/acl.h}
@@ -5733,23 +5745,16 @@ buffer di dimensione sufficiente, il suo prototipo è:
 
 {La funzione ritorna la dimensione in byte della rappresentazione binaria
   della ACL in caso di successo e $-1$ per un errore, nel qual caso
 
 {La funzione ritorna la dimensione in byte della rappresentazione binaria
   della ACL in caso di successo e $-1$ per un errore, nel qual caso
-  \var{errno} assumerà uno dei valori:
+  \var{errno} può assumere solo il valore:
   \begin{errlist}
   \item[\errcode{EINVAL}] la ACL indicata da \param{acl} non è valida.
   \end{errlist}
 }  
 \end{funcproto}
 
   \begin{errlist}
   \item[\errcode{EINVAL}] la ACL indicata da \param{acl} non è valida.
   \end{errlist}
 }  
 \end{funcproto}
 
-Prima di effettuare la lettura della rappresentazione binaria è sempre
-necessario allocare un buffer di dimensione sufficiente a contenerla, pertanto
-prima si dovrà far ricorso a \funcd{acl\_size} per ottenere tale dimensione e
-poi allocare il buffer con una delle funzioni di
-sez.~\ref{sec:proc_mem_alloc}. Una volta terminato l'uso della
-rappresentazione binaria, il buffer dovrà essere esplicitamente disallocato,
-in questo caso con \func{free}.
-
-La funzione che consente di leggere la rappresentazione binaria di una ACL è
-\funcd{acl\_copy\_ext}, il cui prototipo è:
+Ottenuta con \func{acl\_size} la dimensione per il buffer lo si potrà allocare
+direttamente con \func{malloc}. La rappresentazione binaria di una ACL si
+potrà poi ottenere con la funzione \funcd{acl\_copy\_ext}, il cui prototipo è:
 
 \begin{funcproto}{
 \fhead{sys/types.h}
 
 \begin{funcproto}{
 \fhead{sys/types.h}
@@ -5770,22 +5775,22 @@ La funzione che consente di leggere la rappresentazione binaria di una ACL è
 }  
 \end{funcproto}
 
 }  
 \end{funcproto}
 
-La funzione salverà la rappresentazione binaria della ACL indicata da
-\param{acl} sul buffer posto all'indirizzo \param{buf\_p} e lungo \param{size}
-byte, restituendo la dimensione della stessa come valore di ritorno. Qualora
-la dimensione della rappresentazione ecceda il valore di \param{size} la
-funzione fallirà con un errore di \errcode{ERANGE}. La funzione non ha nessun
-effetto sulla ACL indicata da \param{acl}.
+La funzione scriverà la rappresentazione binaria della ACL indicata da
+\param{acl} sul buffer di dimensione \param{size}
+all'indirizzo \param{buf\_p}, restituendo la dimensione della stessa come
+valore di ritorno. Qualora la dimensione della rappresentazione ecceda il
+valore di \param{size} la funzione fallirà con un errore di
+\errcode{ERANGE}. La funzione non ha nessun effetto sulla ACL indicata
+da \param{acl}.
 
 
-Viceversa se si vuole ripristinare una ACL a partire dalla rappresentazione
-binaria della stessa disponibile in un buffer si potrà usare la funzione 
-\funcd{acl\_copy\_int}, il cui prototipo è:
+Viceversa se si vuole ripristinare una ACL a partire da una rappresentazione
+binaria si potrà usare la funzione \funcd{acl\_copy\_int}, il cui prototipo è:
 
 \begin{funcproto}{
 \fhead{sys/types.h} 
 \fhead{sys/acl.h}
 \fdecl{acl\_t acl\_copy\_int(const void *buf\_p)}
 
 \begin{funcproto}{
 \fhead{sys/types.h} 
 \fhead{sys/acl.h}
 \fdecl{acl\_t acl\_copy\_int(const void *buf\_p)}
-\fdesc{.} 
+\fdesc{Ripristina la rappresentazione binaria di una ACL.} 
 }
 
 {La funzione ritorna un oggetto di tipo \type{acl\_t} in caso di successo e
 }
 
 {La funzione ritorna un oggetto di tipo \type{acl\_t} in caso di successo e
@@ -5799,12 +5804,10 @@ binaria della stessa disponibile in un buffer si potrà usare la funzione
 }
 \end{funcproto}
 
 }
 \end{funcproto}
 
-La funzione in caso di successo alloca autonomamente un oggetto di tipo
-\type{acl\_t} che viene restituito come valore di ritorno con il contenuto
-della ACL rappresentata dai dati contenuti nel buffer puntato da
-\param{buf\_p}. Si ricordi che come per le precedenti funzioni l'oggetto
-\type{acl\_t} dovrà essere disallocato esplicitamente al termine del suo
-utilizzo.
+La funzione alloca autonomamente un oggetto di tipo \type{acl\_t}, restituito
+come valore di ritorno, con il contenuto della ACL rappresentata dai dati del
+buffer puntato da \param{buf\_p}. Al solito l'oggetto \type{acl\_t} dovrà
+essere disallocato esplicitamente al termine del suo utilizzo.
 
 Una volta che si disponga della ACL desiderata, questa potrà essere impostata
 su un file o una directory. Per impostare una ACL sono disponibili due
 
 Una volta che si disponga della ACL desiderata, questa potrà essere impostata
 su un file o una directory. Per impostare una ACL sono disponibili due
@@ -5923,10 +5926,11 @@ funzionalità ha senso solo per i filesystem su cui si mantengono i dati degli
 utenti\footnote{in genere la si attiva sul filesystem che contiene le
   \textit{home} degli utenti, dato che non avrebbe senso per i file di sistema
   che in genere appartengono all'amministratore.} essa deve essere
 utenti\footnote{in genere la si attiva sul filesystem che contiene le
   \textit{home} degli utenti, dato che non avrebbe senso per i file di sistema
   che in genere appartengono all'amministratore.} essa deve essere
-esplicitamente richiesta; questo si fa tramite due distinte opzioni di
-montaggio, \texttt{usrquota} e \texttt{grpquota} che abilitano le quote
-rispettivamente per gli utenti e per i gruppi. Grazie a questo è possibile
-usare le limitazioni sulle quote solo sugli utenti o solo sui gruppi.
+esplicitamente richiesta. Questo si fa, per tutti i filesystem che le
+supportano, tramite due distinte opzioni di montaggio, \texttt{usrquota} e
+\texttt{grpquota} che abilitano le quote rispettivamente per gli utenti e per
+i gruppi. Così è possibile usare le limitazioni sulle quote o sugli utenti o
+sui gruppi o su entrambi.
 
 Il meccanismo prevede che per ciascun filesystem che supporta le quote disco
 (i vari \textit{extN}, \textit{btrfs}, \textit{XFS}, \textit{JFS},
 
 Il meccanismo prevede che per ciascun filesystem che supporta le quote disco
 (i vari \textit{extN}, \textit{btrfs}, \textit{XFS}, \textit{JFS},
@@ -5944,14 +5948,15 @@ directory radice del filesystem su cui si sono attivate le quote;\footnote{la
   cosa vale per tutti i filesystem tranne \textit{XFS} che mantiene i dati
   internamente.} con la versione 2 del supporto delle quote, l'unica rimasta
 in uso, questi file sono \texttt{aquota.user} e \texttt{aquota.group}, in
   cosa vale per tutti i filesystem tranne \textit{XFS} che mantiene i dati
   internamente.} con la versione 2 del supporto delle quote, l'unica rimasta
 in uso, questi file sono \texttt{aquota.user} e \texttt{aquota.group}, in
-precedenza erano \texttt{quota.user} e \texttt{quota.group}. Dato che i file
-vengono aggiornati soltanto se il filesystem è stato montato con il supporto
-delle quote, se si abilita questo in un secondo tempo (o se si eseguono
-operazioni sul filesystem senza averlo abilitato) i dati contenuti possono non
-corrispondere esattamente allo stato corrente del consumo delle risorse; per
-questo in genere prima di montare in scrittura un filesystem su cui sono
-abilitate le quote in genere viene utilizzato il comando \cmd{quotacheck} per
-verificare e aggiornare i dati.
+precedenza erano \texttt{quota.user} e \texttt{quota.group}. 
+
+Dato che i file vengono aggiornati soltanto se il filesystem è stato montato
+con il supporto delle quote, se si abilita questo in un secondo tempo, o se si
+eseguono operazioni sul filesystem senza averlo abilitato, i dati contenuti
+possono non corrispondere esattamente allo stato corrente del consumo delle
+risorse. Per questo in genere prima di montare in scrittura un filesystem su
+cui sono abilitate le quote in genere viene utilizzato il comando
+\cmd{quotacheck} per verificare e aggiornare i dati.
 
 Le restrizioni sul consumo delle risorse prevedono due limiti, il primo viene
 detto \textit{soft limit} e può essere superato per brevi periodi di tempo, il
 
 Le restrizioni sul consumo delle risorse prevedono due limiti, il primo viene
 detto \textit{soft limit} e può essere superato per brevi periodi di tempo, il
@@ -5980,7 +5985,6 @@ gestione delle quote è \funcd{quotactl}, ed il suo prototipo è:
     quote indicato da \param{addr} non esiste o non è un file ordinario.
   \item[\errcode{EBUSY}] si è richiesto \const{Q\_QUOTAON}, ma le quote sono
     già attive.
     quote indicato da \param{addr} non esiste o non è un file ordinario.
   \item[\errcode{EBUSY}] si è richiesto \const{Q\_QUOTAON}, ma le quote sono
     già attive.
-  \item[\errcode{EFAULT}] l'indirizzo \param{addr} non è valido.
   \item[\errcode{EINVAL}] o \param{cmd} non è un comando valido,
     o il dispositivo \param{dev} non esiste.
   \item[\errcode{EIO}] errore di lettura/scrittura sul file delle quote.
   \item[\errcode{EINVAL}] o \param{cmd} non è un comando valido,
     o il dispositivo \param{dev} non esiste.
   \item[\errcode{EIO}] errore di lettura/scrittura sul file delle quote.
@@ -5996,6 +6000,7 @@ gestione delle quote è \funcd{quotactl}, ed il suo prototipo è:
     \const{Q\_SETQUOTA}, \const{Q\_SETUSE}, \const{Q\_SETQLIM} per un
     filesystem senza quote attivate.
   \end{errlist}
     \const{Q\_SETQUOTA}, \const{Q\_SETUSE}, \const{Q\_SETQLIM} per un
     filesystem senza quote attivate.
   \end{errlist}
+  ed inoltre \errval{EFAULT} e nel suo significato generico.
 }
 \end{funcproto}
 
 }
 \end{funcproto}