X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=bd30e902a80f913413db6fef73903a0fdb7441b2;hp=29feca0272dd9c2c4c47c5d8dedb57ee7d5182f3;hb=dfa9e34351e48431891350bcfda4d9873ff79682;hpb=b61786a321acb8edfc249dd27b596d2323859db6 diff --git a/filedir.tex b/filedir.tex index 29feca0..bd30e90 100644 --- a/filedir.tex +++ b/filedir.tex @@ -130,18 +130,15 @@ shell), occorre il permesso di esecuzione per il medesimo, inoltre solo i file regolari possono essere eseguiti. -Per stabilire se un processo possiede un certo permesso ogni volta che si -apre, crea o cancella un file il kernel esegue una serie di controlli -guardando utente e gruppo a cui il file appartiene (i valori di \var{st\_uid} -e \var{st\_gid}) che confronta con l'\textit{effective user id}, -\textit{effective group id} e gli eventuali \textit{supplementary group id} +La procedura con cui il kernel stabilisce se un processo possiede un certo +permesso (di lettura, scrittura o esecuzione) si basa sul confronto fra +l'utente e il gruppo a cui il file appartiene (i valori di \var{st\_uid} e +\var{st\_gid} accennati in precedenza) e l'\textit{effective user id}, +l'\textit{effective group id} e gli eventuali \textit{supplementary group id} del processo (per una spiegazione dettagliata degli ID dei processi si veda \secref{sec:prochand_perms}; normalmente, a parte quanto spiegato in -\secref{sec:filedir_suid_sgid}, essi corrispondo all'uid e al gid dell'utente -che ha lanciato il processo). - - - +\secref{sec:filedir_suid_sgid}, essi corrispondono all'uid e al gid +dell'utente che ha lanciato il processo). % Quando un processo cerca l'accesso al file esso controlla i propri uid e gid @@ -154,10 +151,31 @@ che ha lanciato il processo). % In realtà il procedimento è più complesso di quanto descritto in maniera % elementare qui; inoltre ad un processo sono associati diversi identificatori, -% torneremo su questo in maggiori dettagli in seguito in \secref{sec:proc_perms}. - - - +% torneremo su questo in maggiori dettagli in seguito in +% \secref{sec:proc_perms}. + +I passi attraverso i quali viene stabilito se il processo possiede il diritto +di accesso sono i seguenti: +\begin{itemize} +\item Se l'\textit{effective user id} del processo è zero (corrispondente + all'amministratore) l'accesso è sempre garantito senza nessun ulteriore + controllo. Per questo motivo \textsl{root} ha piena libertà di accesso a + tutti i file. +\item Se l'\textit{effective user id} del processo è uguale all'uid del + proprietario del file (che nel caso più comune significa che chi ha lanciato + il processo è il proprietario 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 + l'accesso in scrittura, etc.} bit dei permessi d'accesso dell'utente è + settato, l'accesso è consentito + \item altrimenti l'accesso è negato + \end{itemize} +\item Se l'\textit{effective group id} del processo o uno dei + \textit{supplementary group id} dei processi. +\end{itemize} +questi passi vengono eseguiti in quest'ordine, qualora si abbia il permesso +d'accesso la scansione viene terminata. \subsection{I flag \texttt{suid} e \texttt{sgid}} \label{sec:filedir_suid_sgid}