%% filedir.tex
%%
-%% Copyright (C) 2000-2009 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2010 Simone Piccardi. Permission is granted to
%% copy, distribute and/or modify this document under the terms of the GNU Free
%% Documentation License, Version 1.1 or any later version published by the
%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
Si tenga conto che la lunghezza del file riportata in \var{st\_size} non è
detto che corrisponda all'occupazione dello spazio su disco per via della
-possibile esistenza dei cosiddetti \textit{holes} (letteralmente
-\textsl{buchi}) che si formano tutte le volte che si va a scrivere su un file
-dopo aver eseguito una \func{lseek} (vedi sez.~\ref{sec:file_lseek}) oltre la
+possibile esistenza dei cosiddetti \index{file!\textit{hole}} \textit{holes}
+(letteralmente \textsl{buchi}) che si formano tutte le volte che si va a
+scrivere su un \itindex{sparse~file} file dopo aver eseguito una \func{lseek}
+(tratteremo in dettaglio l'argomento in sez.~\ref{sec:file_lseek}) oltre la
sua fine.
In questo caso si avranno risultati differenti a seconda del modo in cui si
Se il file è più lungo della lunghezza specificata i dati in eccesso saranno
perduti; il comportamento in caso di lunghezza inferiore non è specificato e
dipende dall'implementazione: il file può essere lasciato invariato o esteso
-fino alla lunghezza scelta; in quest'ultimo caso lo spazio viene riempito con
-zeri (e in genere si ha la creazione di un \textit{hole} nel file).
-
+fino alla lunghezza scelta; nel caso di Linux viene esteso con la creazione di
+un \index{file!\textit{hole}} \textsl{buco} nel \itindex{sparse~file} file e
+ad una lettura si otterranno degli zeri.
\subsection{I tempi dei file}
\label{sec:file_file_times}
Si ricordi infine che i permessi non hanno alcun significato per i link
simbolici, mentre per i \index{file!di~dispositivo} file di dispositivo hanno
senso soltanto i permessi di lettura e scrittura, che si riflettono sulla
-possibilita di compiere dette operazioni sul dispositivo stesso.
+possibilità di compiere dette operazioni sul dispositivo stesso.
Nella tabella si è indicato con il carattere ``-'' il fatto che il valore del
bit in questione non è influente rispetto a quanto indicato nella riga della
vengono mantenute le stesse capacità del processo padre.
-
% TODO verificare per process capability bounding set, vedi:
% http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3b7391de67da515c91f48aa371de77cb6cc5c07e
% http://lwn.net/Articles/211883/
-
Un elenco delle delle \textit{capabilities} disponibili su Linux, con una
breve descrizione ed il nome delle costanti che le identificano, è riportato
in tab.~\ref{tab:proc_capabilities};\footnote{l'elenco presentato questa
\const{CAP\_SYS\_CHROOT}& La capacità di eseguire la funzione
\func{chroot} (vedi
sez.~\ref{sec:file_chroot}).\\
- \const{CAP\_MAC\_ADMIN} & La capacità amministare il MAC di Smack (dal
+ \const{CAP\_MAC\_ADMIN} & La capacità amministrare il MAC di Smack (dal
kernel 2.6.25).\\
\const{CAP\_MAC\_OVERRIDE}& La capacità evitare il MAC di Smack (dal
kernel 2.6.25).\\
Infine la \textit{capability} \const{CAP\_SYS\_RESOURCE} attiene alla
possibilità di superare i limiti imposti sulle risorse di sistema, come usare
lo spazio disco riservato all'amministratore sui filesystem che lo supportano,
-usare la funzione \func{ioctl} per cotrollare il \textit{journaling} sul
+usare la funzione \func{ioctl} per controllare il \textit{journaling} sul
filesystem \acr{ext3}, non subire le quote disco, aumentare i limiti sulle
risorse (vedi sez.~\ref{sec:sys_resource_limit}) e sulle dimensioni dei
messaggi delle code del SysV IPC (vedi sez.~\ref{sec:ipc_sysv_mq}).
caso l'argomento \param{name} deve essere specificato con le modalità già
illustrate in precedenza per le altre funzioni relative agli attributi estesi.
-
\itindend{Extended~Attributes}
+
\subsection{Le \textit{Access Control List}}
\label{sec:file_ACL}
+% la documentazione di sistema è nei pacchetti libacl1-dev e acl
+% vedi anche http://www.suse.de/~agruen/acl/linux-acls/online/
\itindbeg{Access~Control~List}
\itindend{Access~Control~List}
-% la documentazione di sistema è nei pacchetti libacl1-dev e acl
-% vedi anche http://www.suse.de/~agruen/acl/linux-acls/online/
-
\subsection{La funzione \func{chroot}}
% LocalWords: sez like filesystem unlink MacOS Windows VMS inode kernel unistd
-% LocalWords: int const char oldpath newpath errno EXDEV EPERM st
+% LocalWords: int const char oldpath newpath errno EXDEV EPERM st Smack SysV
% LocalWords: EEXIST EMLINK EACCES ENAMETOOLONG ENOTDIR EFAULT ENOMEM EROFS ls
% LocalWords: ELOOP ENOSPC EIO pathname nlink stat vfat fsck EISDIR ENOENT cap
% LocalWords: POSIX socket fifo sticky root system call count crash nell' init
% LocalWords: LEASE lease SETFCAP AUDIT permitted inherited inheritable AND
% LocalWords: bounding execve fork capget capset header hdrp datap ESRCH undef
% LocalWords: version libcap lcap clear ncap caps pag capgetp CapInh CapPrm
-% LocalWords: fffffeff CapEff getcap
+% LocalWords: fffffeff CapEff getcap dell'IPC scheduling dell'I lookup dcookie
+% LocalWords: NEWNS unshare nice NUMA ioctl journaling
%%% Local Variables:
%%% mode: latex