\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]{jeu. juil. 10 10:47:18 CEST 2014}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={nslcd.conf},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Fichier de configuration de nslcd},
CreationDate={D:20140710104718},
ModDate={D:20140710104718},
Keywords={nsswitch;LDAP}
}}
\begin{document}
 
\begin{center}
{\Huge nslcd.conf }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Fichier de configuration de nslcd}
 
\vspace{10mm}
 
\vspace{1cm}{\huge options runtimes }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} threads NUM]{Spécifie le nombre de threads. Défaut: 5}
\item[\hspace{1mm} uid UID]{user id du service}
\item[\hspace{1mm} gid GID]{Groupe du service}
\item[\hspace{1mm} log SCHEME \texttt{[}LEVEL\texttt{]}]{Contrôle les logs. SCHEME peut être none ou syslog. (défaut: syslog info)}
\end{description}
 
\vspace{1cm}{\huge options de connexion }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} uri URI]{URI du serveur LDAP. La valeur alternative DNS peut être utilisée pour rechercher les DNS SRV avec la syntaxe DNS:DOMAIN.}
\item[\hspace{1mm} ldap\_version VERSION]{Spécifie la version du protocole LDAP à utiliser}
\item[\hspace{1mm} binddn DN]{DN à utiliser pour le bind.}
\item[\hspace{1mm} bindpw PASSWORD]{Mot de passe du binddn}
\item[\hspace{1mm} rootpwmoddn DN]{Spécifie le DN à utiliser quand root tente de modifier le mot de passe d'un utilisateur en utilisant le module PAM.}
\item[\hspace{1mm} rootpwmodpw PASSWORD]{Mot de passe de rootpwmoddn}
\end{description}
 
\vspace{1cm}{\huge options SASL }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} sasl\_mech MECHANISM]{Spécifie le mécanisme SASL à utiliser pour l'authentification SASL}
\item[\hspace{1mm} sasl\_realm REALM]{Domaine SASL}
\item[\hspace{1mm} sasl\_authcid AUTHCID]{Identité d'authentification}
\item[\hspace{1mm} sasl\_authzid AUTHZID]{Identité d'authorisation (doit être spécifié au format dn:<dn> ou u:<username>)}
\item[\hspace{1mm} sasl\_secprops PROPERTIES]{Spécifie les propriétés de sécurité SASL de Cyrus. les valeurs permise sont décrites dans ldap.conf}
\item[\hspace{1mm} sasl\_canonicalize yes|no]{Détermine si le nom d'hôte du serveur LDAP devrait être canonisé ou non. À yes, effectue un reverse lookup.}
\end{description}
 
\vspace{1cm}{\huge options Kerberos }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} krb5\_ccname NAME]{Nom pour le cache d'accréditations Kerberos}
\end{description}
 
\vspace{1cm}{\huge options de recherche et mappage }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} base \texttt{[}MAP\texttt{]} DN]{Base de recherche. Peut être spécifié plusieurs fois. Une base de recherche globale peut être spécifiée ou un map spécifique.}
\item[\hspace{1mm} scope \texttt{[}MAP\texttt{]} sub\texttt{[}tree\texttt{]}|one\texttt{[}level\texttt{]}|base|children]{Spécifie le scope de recherche.}
\item[\hspace{1mm} deref never|searching|finding|always]{Définis la stratégie de dé-référencement des alias.}
\item[\hspace{1mm} referrals yes|no]{Spécifie si les référant doivent être suivis ou non.}
\item[\hspace{1mm} filter MAP FILTER]{Filtre de recherche à utiliser pour un map spécifique.}
\item[\hspace{1mm} map MAP ATTRIBUTE NEWATTRIBUTE]{Permet de définir d'autres attributs que ceux de la rfc2307.}
\end{description}
 
\vspace{1cm}{\huge options de timing et reconnexion }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} bind\_timelimit SECONDS]{limite de temps pour la connexion au serveur. Défaut: 10 secondes}
\item[\hspace{1mm} timelimit SECONDS]{Spécifie la limite de temps pour une réponse du serveur. 0 pour une attente infinie.}
\item[\hspace{1mm} idle\_timelimit SECONDS]{Période d'inactivité avant de fermer la connexion au serveur. Défaut: pas de limite}
\item[\hspace{1mm} reconnect\_sleeptime SECONDS]{Temps au delà duquel un serveur ldap est considéré indisponible. Une fois ce temps atteins, les tentatives seront faites une fois par cette tranche de temps. défaut: 10 secondes.}
\end{description}
 
\vspace{1cm}{\huge options SSL/TLS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} ssl on|off|start\_tls]{Spécifie le mode à utiliser}
\item[\hspace{1mm} tls\_reqcert never|allow|try|demand|hard]{Spécifie quelles vérifications effectuer sur le certificat du serveur. Les valeurs sont décrites dans ldap.conf.}
\item[\hspace{1mm} tls\_cacertdir PATH]{Répertoire contenant les certificats X.509 pour l'authentification du paire. Ignoré avec GnuTLS.}
\item[\hspace{1mm} tls\_cacertfile PATH]{Spécifie le chemin du certificat X.509 pour l'authentification du paire.}
\item[\hspace{1mm} tls\_randfile PATH]{Chemin de la source d'entropie. Ignoré avec GnuTLS}
\item[\hspace{1mm} tls\_ciphers CIPHERS]{Chiffrement à utiliser pour TLS.}
\item[\hspace{1mm} tls\_cert PATH]{Chemin du certificat du client}
\item[\hspace{1mm} tls\_key PATH]{Chemin du fichier contenant la clé privé du client.}
\end{description}
 
\vspace{1cm}{\huge autres options }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} pagesize NUMBER]{> 0, définis le nombre de résultat pour une recherche paginés. Défaut: 0.}
\item[\hspace{1mm} nss\_initgroups\_ignoreusers user1,user2,...]{Empêche la recherche du groupe membership dans ldap pour les utilisateurs spécifiés. Peut être spécifié plusieurs fois.}
\item[\hspace{1mm} nss\_min\_uid UID]{uid minimum pour les recherches dans ldap}
\item[\hspace{1mm} nss\_nested\_groups yes|no]{Si l'attribut member pointe vers un autre groupe, les membres imbriqués sont retournés. Défaut: no.}
\item[\hspace{1mm} validnames REGEX]{pattern pour déterminer les noms d'utilisateurs et de groupes valides.}
\item[\hspace{1mm} ignorecase yes|no]{Prend en compte ou non la casse. yes peut exposer le système à des vulnérabilités.}
\item[\hspace{1mm} pam\_authz\_search FILTER]{Permet de paramétrer la vérification d'authorisation. Le filtre spécifié est exécuté et si une entrée matche, l'accès est donné. Le filtre peut contenir les variables suivantes: \textbf{\$username, \$service, \$ruser, \$rhost, \$tty, \$hostname, \$fqdn, \$dn, \$uid}. Peut être spécifié plusieurs fois.}
\item[\hspace{1mm} pam\_password\_prohibit\_message "MESSAGE"]{Refuse la modification de mot de passe avec pam\_ldap et affiche le message spécifié. Peut être utilisé pour rediriger l'utilisateur vers un autre moyen de changer son mot de passe.}
\item[\hspace{1mm} reconnect\_invalidate DB,DB,...]{Si définis, vide les caches spécifiés au démarrage et lors des reconnexions au serveur. db est une des maps nsswitch.}
\item[\hspace{1mm} cache CACHE TIME \texttt{[}TIME\texttt{]}]{Durée de rétentions des entrées dans le cache interne.}
\end{description}
 
\vspace{1cm}{\huge Expressions de mappage d'attributs }
 
\
 
\hspace{1mm}  Pour certains attributs, une expression de mappage peut être utilisé pour construire la valeur résultante. C'est actuellement seulement possible pour les attributs qui n'ont pas besoin d'être utilisés dans les filtres de recherche. Les expressions sont un sous-jeu d'expressions shell. Au lieu de substitution de variable, la recherche d'attribut est faite sur l'entrée courante et la valeur d'attribut est substituée. Les expressions suivantes sont supportés:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} \$\{attr\}, \$attr]{Substitue la valeur de l'attribut}
\item[\hspace{1mm} \$\{attr:-word\}]{Substitue la valeur de l'attribut ou, si l'attribut n'est pas définis ou vide, substitue le mot.}
\item[\hspace{1mm} \$\{attr:+word\}]{Substitue le mot si l'attribut si l'attribut est mis, sinon substitue une chaîne vide.}
\item[\hspace{1mm} \$\{attr\#word\}]{Supprime le match le plus court possible de la gauche de la valeur de l'attribut}
\item[\hspace{1mm} \$\{attr\#\#word\}]{Supprime le match le plus long possible de la gauche de la valeur de l'attribut}
\item[\hspace{1mm} \$\{attr\%word\}]{Supprime le match le plus long possible de la droite de la valeur de l'attribut}
\item[\hspace{1mm} \$\{attr\%\%word\}]{Supprime le match le plus court possible de la droite de la valeur de l'attribut}
\end{description}
 
\hspace{1mm}  Seul la version '\#' est supportée par nslcd, les autres sont supportés par pynslcd. Également, le seul wilcard supporté par nslcd est ?. Les caractères \textbf{"}, \textbf{\$} et \textbf{\textbackslash{}} doivent être échappés.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Utilise l'attribut shadowFlag, avec la valeur 0 par défaut: \\
\hspace{1mm} \textbf{"\$\{shadowFlag:-0\}"} \\
\hspace{1mm} Utilise uid pour construire homeDirectory si cette attribut est manquant: \\
\hspace{1mm} \textbf{"\$\{homeDirectory:-/home/\$uid\}"} \\
\hspace{1mm} Si isDisabled est mis, retourne 100: \\
\hspace{1mm} \textbf{"\$\{isDisabled:+100\}"} \\
\hspace{1mm} Enlève le préfixe \{crypt\} de userPassword: \\
\hspace{1mm} \textbf{"\$\{userPassword\#\{crypt\textbackslash{}\}\}"} \\
\end{flushleft}
\end{document}
