primitivi del sistema (di quelli definiti in
tab.~\ref{tab:intro_primitive_types}, e dichiarati in \file{sys/types.h}).
+% TODO: aggiornare con i cambiamenti ai tempi fatti con il 2.6
\subsection{I tipi di file}
\label{sec:file_types}
\textbf{Macro} & \textbf{Tipo del file} \\
\hline
\hline
- \macro{S\_ISREG(m)} & File normale.\\
- \macro{S\_ISDIR(m)} & Directory.\\
- \macro{S\_ISCHR(m)} & Dispositivo a caratteri.\\
- \macro{S\_ISBLK(m)} & Dispositivo a blocchi.\\
- \macro{S\_ISFIFO(m)} & Fifo.\\
- \macro{S\_ISLNK(m)} & Link simbolico.\\
- \macro{S\_ISSOCK(m)} & Socket.\\
+ \macro{S\_ISREG(m)} & file normale.\\
+ \macro{S\_ISDIR(m)} & directory.\\
+ \macro{S\_ISCHR(m)} & dispositivo a caratteri.\\
+ \macro{S\_ISBLK(m)} & dispositivo a blocchi.\\
+ \macro{S\_ISFIFO(m)} & fifo.\\
+ \macro{S\_ISLNK(m)} & link simbolico.\\
+ \macro{S\_ISSOCK(m)} & socket.\\
\hline
\end{tabular}
\caption{Macro per i tipi di file (definite in \texttt{sys/stat.h}).}
del file) allora:
\begin{itemize*}
\item se il relativo\footnote{per relativo si intende il bit di user-read se
- il processo vuole accedere in scrittura, quello di user-write per
+ il processo vuole accedere in lettura, quello di user-write per
l'accesso in scrittura, ecc.} bit dei permessi d'accesso dell'utente è
impostato, l'accesso è consentito
\item altrimenti l'accesso è negato
consentito,
\item altrimenti l'accesso è negato
\end{itemize*}
-\item se il bit dei permessi d'accesso per tutti gli altri è impostato,
+\item Se il bit dei permessi d'accesso per tutti gli altri è impostato,
l'accesso è consentito, altrimenti l'accesso è negato.
\end{enumerate}
l'uso del \itindex{suid~bit} \textit{suid bit}) che vuole controllare se
l'utente originale ha i permessi per accedere ad un certo file.
+% TODO documentare euidaccess (e eaccess)
+
Per cambiare i permessi di un file il sistema mette ad disposizione due
funzioni \funcd{chmod} e \funcd{fchmod}, che operano rispettivamente su un
filename e su un file descriptor, i loro prototipi sono:
gli \textit{Extended Attributes} (anche se su Solaris hanno lo stesso nome),
che sono un meccanismo molto più semplice, che pur essendo limitato (potendo
contenere solo una quantità limitata di informazione) hanno il grande
-vantaggio di essere molto più semplici da realizzare e più
+vantaggio di essere molto più semplici da realizzare, più
efficienti,\footnote{cosa molto importante, specie per le applicazioni che
richiedono una gran numero di accessi, come le ACL.} e di garantire
l'atomicità di tutte le operazioni.
uno standard, dato però che una parte della documentazione prodotta era di
alta qualità venne deciso di rilasciare al pubblico la diciassettesima bozza
del documento, quella che va sotto il nome di \textit{POSIX 1003.1e Draft 17},
-che è divenuta la base sulla quale si definiscono quelle che vanno sotto il
-nome di \textit{Posix ACL}.
+che è divenuta la base sulla quale si definiscono le cosiddette \textit{Posix
+ ACL}.
A differenza di altri sistemi (ad esempio FreeBSD) nel caso di Linux si è
scelto di realizzare le ACL attraverso l'uso degli
Anche in questo caso le funzioni di questa libreria non fanno parte delle
\acr{glibc} e devono essere installate a parte;\footnote{la versione corrente
della libreria è \texttt{libacl1}, e nel caso si usi Debian la si può
- installare con il pacchetto omonimo ed il collegato \texttt{libacl1-dev}.}
+ installare con il pacchetto omonimo e con il collegato \texttt{libacl1-dev}
+ per il file di sviluppo.}
pertanto se un programma le utilizza si dovrà indicare esplicitamente l'uso
della libreria \texttt{libacl} invocando il compilatore con l'opzione
\texttt{-lacl}.