\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{mer. oct. 6 20:53:45 CEST 2010}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={pam\_listfile},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Autorise ou refuse les services basé sur un fichier arbitraire},
CreationDate={D:20101006205345},
ModDate={D:20101006205345},
Keywords={pam;authentification;sécurité}
}}
\begin{document}
 
\begin{center}
{\Huge pam\_listfile }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Autorise ou refuse les services basé sur un fichier arbitraire}
 
\vspace{10mm}
 
\hspace{1mm}  le mdule récupère l'item du type spécifié:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{6mm} user]{spécifie le username, PAM\_USER}
\item[\hspace{6mm} tty]{spécifie le nom du terminal, PAM\_TTY}
\item[\hspace{6mm} rhost]{spécifie le nom de l'hôte distant, PAM\_RHOST}
\item[\hspace{6mm} ruser]{spécifie l'utilisateur distante, PAM\_TUSER}
\end{description}
 
\hspace{1mm}  et cherche une instance de cet item dans \textbf{file=filename}. \textbf{filename} contient une ligne par item listé. Si l'item est trouvé, alors si \textbf{sense=allow}, retourne \textbf{PAM\_SUCCESS} sinon si \textbf{sense=deny}, retourne \textbf{PAM\_AUTH\_ERR}.
\vspace{5mm} \\
 
 
\hspace{1mm}  Si une erreur est rencontrée (par exemple si \textbf{filename} n'existe pas ou un argument mal construit est trouvé), alors si \textbf{onerr=succeed}, retourne \textbf{PAM\_SUCCESS}, sinon si \textbf{onerr=fail}, retourne \textbf{PAM\_AUTH\_ERR} ou \textbf{PAM\_SERVICE\_ERR}.
\vspace{5mm} \\
\hspace{1mm}  \textbf{apply=} peut être utilisé pour restreindre l'application à un utilisateur spécifique (\textbf{apply=username}) ou un groupe (\textbf{apply=@groupname}). Utile seulement avec tty, rhost et shell
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} item=\texttt{[}tty|user|rhost|ruser|group|shell\texttt{]}]{Ce qui est listé dans le fichier et doit être vérifié}
\item[\hspace{1mm} sense=allow]{Action à prendre si trouvé dans le fichier.}
\item[\hspace{1mm} file=/path/filename]{Fichier contenant un item par ligne}
\item[\hspace{1mm} onerr=succeed]{quoi faire si quelques chose se produit comme l'impossibilité d'ouvrir le fichier}
\item[\hspace{1mm} apply=user]{restreint à l'utilisateur ou le groupe spécifié}
\item[\hspace{1mm} quiet]{ne log par les erreurs}
\end{description}
 
\hspace{1mm}  fournis tous les types de module
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Valeurs retournées }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} PAM\_SUCCESS]{en cas de succès}
\item[\hspace{1mm} PAM\_AUTH\_ERR]{en cas d'échec}
\item[\hspace{1mm} PAM\_BUFF\_ERR, PAM\_SERVICE\_ERR]{en cas d'erreur interne}
\item[\hspace{1mm} PAM\_IGNORE]{si aucune rêgle ne s'applique}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} l'authentification classique ftpusers peut être implémenté avec cette entrée dans /etc/pam.d/ftpd \\
\hspace{1mm} \textbf{auth required pam\_listfile.so onerr=succeed item=user sense=deny file=/etc/ftpusers} \\
\hspace{1mm} note que les utilisateur listés dans /etc/ftpusers ne sont pas autorisés pour accéder au service ftp \\
\hspace{1mm} \textbf{Pour autoriser le login pour certains utilisateurs, vous pouvez utiliser une entrée dans /etc/pam.d/login} \\
\hspace{1mm} auth required pam\_listfile.so onerr=fail item=user sense=allow file=/etc/loginusers \\
\end{flushleft}
\end{document}
