rendered paste body\section{Refinement and Implementation}
\subsection{First-Level Refinement}
\frame
{
\frametitle{First-Level Refinement}
Pseudocode Implementation
\lstset{language=pascal,basicstyle=\tiny}
\lstinputlisting{D:/acl.pseudo}
}
\subsection{Second-Level Refinement}
\frame
{
\frametitle{Second-Level Refinement}
Pseudocode Transfer
\begin{itemize}
\item<1-> role account
\begin{itemize}
\item<2-> \lstinline|struct uid_t|
\end{itemize}
\item<3-> commands
\begin{itemize}
\item<4-> \lstinline|char *[]|
\end{itemize}
\item<5-> definiertes Interface := \lstinline|int accessOk(uid_t rname, char *cmd[]);|
\end{itemize}
}
\subsection{Functions}
\frame
{
The missing three
\begin{itemize}
\item<2-> Obtaining Location
\item<3-> parse ACL Records
\item<4-> Error Handling
\end{itemize}
}
\subsubsection{Obtaining Location}
\frame
{
\frametitle{Obtaining Location}
utmp File
\begin{itemize}
\item<1-4> user account
\item<2-4> login terminal
\item<3-4> login time
\item<4-4> remotehost $|$ localhost
\item<5-> (user,tty,time,host)
\end{itemize}
\begin{itemize}
\item<6-> Parse utmp File
\item<7-> $\rightarrow$ 2 neue Probleme
\begin{itemize}
\item<8-> I Jeder Prozess kann utmp verändern?
\begin{itemize}
\item<9-9> $\rightarrow$ utmp ist nicht Vertrauenswürdig
\end{itemize}
\item<10-> II Entkoppelte Prozesse (Terminallos)
\begin{itemize}
\item<11-12> User kann sich mehrfach anmelden
\item<12-12> $\rightarrow$ Prozess an Terminal binden
\end{itemize}
\item<13-> umtp nicht Vertrauenswürdig $\Longrightarrow$ Design
\item<14-> Zugriff verweigern, wenn nicht *any* angegeben
\end{itemize}
\end{itemize}
}
\subsubsection{ACL Record}
\frame
{
\frametitle{ACL Record}
\begin{itemize}
\item<1-6> \lstinline|role rname|
\item<2-6> \lstinline|string user|
\item<3-6> \lstinline|string location|
\item<4-6> \lstinline|string timeofday|
\item<5-6> \lstinline|string commands[]|
\item<6-6> \lstinline|int numcommands|
\item<7->
\lstset{language=pascal,basicstyle=\tiny}
\lstinputlisting{D:/record.pseudo}
\end{itemize}
}
\subsubsection{Error Handling}
\frame
{
}