\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]{dim. août 14 22:10:16 CEST 2011}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={nsswitch.conf},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Fichier de configuration pour la gestion des services de nom},
CreationDate={D:20110814221016},
ModDate={D:20110814221016},
Keywords={GNU;GNU/Linux;configuration}
}}
\begin{document}
 
\begin{center}
{\Huge nsswitch.conf }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Fichier de configuration pour la gestion des services de nom}
 
\vspace{10mm}
 
\hspace{1mm}  Les bases de données suivantes sont disponibles:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} aliases]{alias de messagerie, utilisé par sendmail}
\item[\hspace{1mm} ethers]{Numéros ethernet}
\item[\hspace{1mm} group]{groupes d'utilisateurs, utilisé par getgrent(3)}
\item[\hspace{1mm} hosts]{Noms d'hôtes et numéros, utilisé par gethostbyname(3) et similaires}
\item[\hspace{1mm} netgroup]{liste d'hôtes et d'utilisateurs, utilisé pour les règles d'accès, NIS uniquement}
\item[\hspace{1mm} networks]{noms réseaux et numéros, utilisés par getnetent(3)}
\item[\hspace{1mm} passwd]{mots de passe utilisateurs, utilisé par getpwent(3)}
\item[\hspace{1mm} protocols]{protocoles réseaux, utilisés par getprotoent(3)}
\item[\hspace{1mm} publickey]{clés publiques et secret pour Secure\_RPC utilisé par NFS et NIS+}
\item[\hspace{1mm} rpc]{Noms et valeurs RPC, utilisé par getrpcbyname(3)}
\item[\hspace{1mm} services]{services réseaux, utilisé par getservent(3)}
\item[\hspace{1mm} shadow]{mots de passe utilisateurs, utilisés par getspnam(3)}
\end{description}
 
\hspace{1mm} Exemple de nsswitch.con par défaut:
 
{\ttfamily
passwd : compat\\ group : compat\\ shadow : compat\\ \hspace{2mm}\\ hosts : dns \texttt{[}!UNAVAIL=return\texttt{]} files\\ networks : nis \texttt{[}NOTFOUND=return\texttt{]} files\\ ethers : nis \texttt{[}NOTFOUND=return\texttt{]} files\\ protocols : nis \texttt{[}NOTFOUND=return\texttt{]} files\\ rpc : nis \texttt{[}NOTFOUND=return\texttt{]} files\\ services : nis \texttt{[}NOTFOUND=return\texttt{]} files\\
}
\vspace{8mm}
 
\hspace{1mm}  La première colonne est la base de données. Le reste de la ligne spécifie le processus de recherche. Vous pouvez spécifier le fonctionnement pour chaque base de données. La configuration pour chaque base de données peut contenir 2 éléments différents: la spécification du service et la réaction de la recherche.
\vspace{5mm} \\
 
 
\hspace{1mm} La syntaxe de la réaction de recherche est la suivante:
 
{\ttfamily
'\texttt{[}' ( ' !' ? STATUS '=' ACTION )+ '\texttt{]}'\\
}
\vspace{8mm}
 
\begin{description} \normalsize
\item[\hspace{1mm} STATUS]{= success | notfound | unavail | tryagain}
\item[\hspace{1mm} ACTION]{= return | continue}
\item[\hspace{1mm} success]{Aucune erreur ne s'est produit et l'entrée désirée est retournée (défaut : return)}
\item[\hspace{1mm} notfound]{le processus de recherche fonctionne mais la valeur recherchée n'a pas été trouvée (défaut : continue)}
\item[\hspace{1mm} unavail]{le service est indisponible de manière permanente. Cela peut être un fichier non disponible, ou pour DNS, le serveur non disponible ou une requête non permise. (Défaut : continue)}
\item[\hspace{1mm} tryagain]{Le service est temporairement indisponible. Cela peut être un fichier bloqué ou un serveur saturé (défaut : continue)}
\end{description}
 
\vspace{1cm}{\huge Intéraction avec le mode compat }
 
\
 
\hspace{1mm}  libc5 sans NYS n'a pas de nss mais permet certains contrôles de stratégie. Dans /etc/passwd vous pouvez avoir des entrées sous la forme \textbf{+user} ou \textbf{+@netgroup} (inclut l'utilisateur spécifié depuis la map NIS passwd), \textbf{-user} ou \textbf{-@netgroup} (exclut l'utilisateur spécifié), et \textbf{+} (inclus tous les utilisateurs, excepté ceux exclus).
\vspace{5mm} \\
 
 
\hspace{1mm}  Vous pouvez écraser certains champs passwd pour un utilisateur particulier depuis la map NIS passwd en utilisant la forme étendue \textbf{+user :: :: ::} dans \textbf{/etc/passwd}. Les champs non vides écrasent les informations dans la map NIS passwd. Vu que la plupart des personnes placent un \textbf{+} à la fin de \textbf{/etc/passwd} pour inclure tout le monde depuis NIS, le switch fournit une alternative plus rapide pour ce cas (\textbf{passwd : files nis}) qui ne requière pas le simple \textbf{+} dans \textbf{/etc/passwd}, \textbf{/etc/group} et \textbf{/etc/shadow}. Si ce n'est pas suffisant, le service compat fournit une sémantique \textbf{+/-} complète. Par défaut, la source \textbf{nis} est utilisée, mais peut être changé en spécifiant \textbf{nisplus} comme source pour la pseudo base de données \textbf{passwd\_compat, group\_compat} et \textbf{shadow\_compat}. Ces pseudos bases de données sont uniquement disponibles dans la librairie GNU C.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Fichiers }
 
\
 
\hspace{1mm}  Un service nommé SERVICE est implémenté par une librairie d'objet partagée nommée \textbf{libnss\_SERVICE.so.X} qui est dans /lib.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} /etc/nsswitch.conf]{Fichier de configuration}
\item[\hspace{1mm} /lib/libnss\_compat.so.X]{implémente compat}
\item[\hspace{1mm} /lib/libnss\_db.so.X]{implémente db}
\item[\hspace{1mm} /lib/libnss\_dns.so.X]{implémente dns}
\item[\hspace{1mm} /lib/libnss\_files.so.X]{implémente files}
\item[\hspace{1mm} /lib/libnss\_hesiod.so.X]{implémente hesiod}
\item[\hspace{1mm} /lib/libnss\_nis.so.X]{implémente nis}
\item[\hspace{1mm} /lib/libnss\_nisplus.so.2]{implémente nisplus}
\end{description}
 
\vspace{1cm}{\huge Notes }
 
\
 
\hspace{1mm}  Pour chaque processus utilisant nsswitch.conf, le fichier entier est lu une seule fois.
\vspace{5mm} \\
 
\end{flushleft}
\end{document}
