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
-  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}
@@ -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
-  \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}
 
 
@@ -5501,12 +5501,14 @@ sono:
   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}
-  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
@@ -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}
-  ed inoltre 
-nel loro significato generico.}  
+}
 \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
-  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
@@ -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
-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}
@@ -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.
 
-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}
@@ -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
-  \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}
 
-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}
@@ -5770,22 +5775,22 @@ La funzione che consente di leggere la rappresentazione binaria di una ACL è
 }  
 \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)}
-\fdesc{.} 
+\fdesc{Ripristina la rappresentazione binaria di una ACL.} 
 }
 
 {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}
 
-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
@@ -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
-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},
@@ -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
-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
@@ -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.
-  \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.
@@ -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}
+  ed inoltre \errval{EFAULT} e nel suo significato generico.
 }
 \end{funcproto}