%% filedir.tex
%%
-%% Copyright (C) 2000-2012 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2014 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",
collegamento simbolico può fare riferimento anche ad un file che non esiste;
ad esempio possiamo usare il comando \cmd{ln} per creare un collegamento
simbolico nella nostra directory con:
-\begin{Command}
-$ ln -s /tmp/tmp_file symlink
-\end{Command}
+\begin{Console}
+piccardi@hain:~/gapil$ \textbf{ln -s /tmp/tmp_file symlink}
+\end{Console}
%$
e questo avrà successo anche se \file{/tmp/tmp\_file} non esiste:
-\begin{Command}
-$ ls symlink
-\end{Command}
-\begin{Terminal}
+\begin{Console}
+piccardi@hain:~/gapil$ \textbf{ls symlink}
symlink
-\end{Terminal}
+\end{Console}
%$
ma questo può generare confusione, perché accedendo in sola lettura a
\file{symlink}, ad esempio con \cmd{cat}, otterremmo un errore:
-\begin{Command}
-$ cat symlink
-\end{Command}
-\begin{Terminal}
+\begin{Console}
+piccardi@hain:~/gapil$ \textbf{cat symlink}
cat: symlink: No such file or directory
-\end{Terminal}
+\end{Console}
%$
con un errore che può sembrare sbagliato, dato che \cmd{ls} ci ha mostrato
l'esistenza di \file{symlink}, se invece scrivessimo su \file{symlink}
Un classico esempio di directory che ha questo bit impostato è \file{/tmp}, i
cui permessi infatti di solito sono i seguenti:
-\begin{Command}
-$ ls -ld /tmp
-\end{Command}
-\begin{Terminal}
+\begin{Console}
+piccardi@hain:~/gapil$ \textbf{ls -ld /tmp}
drwxrwxrwt 6 root root 1024 Aug 10 01:03 /tmp
-\end{Terminal}
+\end{Console}
%$
quindi con lo \textit{sticky bit} bit impostato. In questo modo qualunque
utente nel sistema può creare dei file in questa directory, che come
funzioni \func{mlock}, \func{mlockall},
\func{shmctl}, \func{mmap} (vedi
sez.~\ref{sec:proc_mem_lock} e
- sez.~\ref{sec:file_memory_map}). \\
+ sez.~\ref{sec:file_memory_map}). \\
+% TODO verificare l'interazione con SHM_HUGETLB
\const{CAP\_IPC\_OWNER} & Evitare il controllo dei permessi
per le operazioni sugli oggetti di
intercomunicazione fra processi (vedi
\errval{ESRCH}. Gli stessi valori possono essere letti direttamente nel
filesystem \textit{proc}, nei file \texttt{/proc/<pid>/status}; ad esempio per
\texttt{init} si otterrà qualcosa del tipo:
-\begin{Command}
-$ cat /proc/1/status
-\end{Command}
-\begin{Terminal}
+\begin{Console}
+piccardi@hain:~/gapil$ \textbf{cat /proc/1/status}
...
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
...
-\end{Terminal}
+\end{Console}
%$
\itindend{capability~state}