\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. 20 10:11:39 CEST 2017}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={rsyncd.conf},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Fichier de configuration pour le mode service de rsync},
CreationDate={D:20170720101139},
ModDate={D:20170720101139},
Keywords={backup;rsync}
}}
\begin{document}
 
\begin{center}
{\Huge rsyncd.conf }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Fichier de configuration pour le mode service de rsync}
 
\vspace{10mm}
 
\vspace{1cm}{\huge Lancer le service }
 
\
 
\hspace{1mm}  Le service rsync est lancée avec l'option --daemon. Le service doit être lancé avec les privilèges root si l'on souhaite utiliser chroot, pour utiliser un port inférieur à 1024, ou pour définir les propriétaires des fichier. Sinon, il doit simplement avoir la permission de lire et écrire les données appropriées, logs, et fichiers de lock.
\vspace{5mm} \\
 
 
\hspace{1mm} Le service peut être lancé via inetd, comme service standalone, ou depuis un client rsync via un shell distant. Via inetd, une ligne dans /etc/services: \\
\hspace{1mm} \textbf{rsync 873/tcp} \\
\hspace{1mm} et une ligne dans /etc/inetd.conf: \\
\hspace{1mm} \textbf{rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon} \\
 
\vspace{1cm}{\huge Paramètres globaux }
 
\
 
\hspace{1mm}  Les premiers paramètres dans le fichier, avant tout [module], sont les paramètres globaux. rsync autorise également l'utilisation d'en nom de module [global]. Il est possible d'inclure des paramètres de modules dans la partie globale auquel cas la valeur remplace la valeur par défaut pour ce paramètre
\vspace{5mm} \\
 
 
\hspace{1mm}  Il est possible de référencer des variables d'environnement dans les valeurs des paramètres, sous la forme \%VAR\%.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} motd\_file]{Permet de spécifier un message du jour à afficher au client.}
\item[\hspace{1mm} pid file]{Écris le pid dans le fichier}
\item[\hspace{1mm} port]{Port d'écoute du service}
\item[\hspace{1mm} address]{Address d'écoute du service}
\item[\hspace{1mm} socket options]{Options socket pasés à setsockopt()}
\item[\hspace{1mm} listen backlog]{Valeur backlog quand le service écoute les connexions. Défaut: 5}
\end{description}
 
\vspace{1cm}{\huge Paramètres de module }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} comment]{Spécifie une description pour le module}
\item[\hspace{1mm} path]{Répertoire disponible dans ce module}
\item[\hspace{1mm} use chroot]{à true, rsync chroot dans le path avant de commencer le transfert de fichier}
\item[\hspace{1mm} numeric ids]{Désactive le mappage des utilisateurs et groupe pou le module}
\item[\hspace{1mm} numge symlinks]{modifie les liens comme --munge-links}
\item[\hspace{1mm} charset]{Jeu de caractère avec lequel les noms des fichiers du module sont stockés. Utiles avec --iconv}
\item[\hspace{1mm} max connections]{Spécifie le nombre de connexions simultanné maximum}
\item[\hspace{1mm} log file]{Log les messages dans le fichier au lieu de syslog}
\item[\hspace{1mm} syslog facility]{facilité syslog (auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, syslog, user, uucp, local0-7)}
\item[\hspace{1mm} max verbosity]{Niveau de verbosité (de 1 à 4)}
\item[\hspace{1mm} lock file]{spécifie le fichier à utiliser pour supporter le paramètre max connections. Défaut: /var/run/rsyncd.lock}
\item[\hspace{1mm} read only]{Détermine si les clients sont capables d'uploader des fichiers ou non.}
\item[\hspace{1mm} write only]{Détermine si les clients sont capables de télécharger des fichiers ou non.}
\item[\hspace{1mm} list]{Détermine si ce module est listé quand le client demande un listing des modules disponibles. De plus, à false, le service prétend que le module n'existe pas quand un client est refusé par hosts allow|deny.}
\item[\hspace{1mm} uid]{uid pour le service rsync}
\item[\hspace{1mm} gid]{gid pour le service rsync}
\item[\hspace{1mm} fake super]{à yes, le service fonctionne comme avec l'option --fake-super}
\item[\hspace{1mm} filter]{Le service possède sa propre chaîne de filtre qui determine quels fichiers le client peut accéder}
\item[\hspace{1mm} exclude]{Liste de motifs d'exclusion}
\item[\hspace{1mm} include]{Liste de motifs d'inclusion}
\item[\hspace{1mm} exclude from]{Fichier contenant des motifs d'exclusion}
\item[\hspace{1mm} include from]{Fichier contenant des motifs d'inclusion}
\item[\hspace{1mm} incoming chmod]{Permet de spécifier un jeu de chaînes chmod qui affectent les permissions de tous les fichiers entrants. Ces changements se produisent après tout les autres calculs de permission}
\item[\hspace{1mm} outgoing chmod]{Permet de spécifier un jeu de chaînes chmod qui affectent les permissions de tous les fichiers sortants. Ces changements se produisent en premier, les permissions apparaîssent différentes de celles stockées dans le système de fichier}
\item[\hspace{1mm} auth users]{Spécifie une liste de règles d'autorisations. Cela peut être une liste d'utilisateurs et peut contenir des caractères wildcard shell. Les usernames et passwords sont stockés dans le fichier spécifié par le paramètre secrets file. Utiliser '@' pour spécifier un groupe. Chaque utilisateur et groupe peut être suffixé par :<deny|ro|rw> pour restreindre les accès. Pour spécifier un utilisateur ou groupe avec un espace dans le nom, commencer la liste avec une ','}
\item[\hspace{1mm} secrets file]{Spécifie le fichier qui contient les paires username:password et/ou @group:password utilisés pour l'authentification du module.}
\item[\hspace{1mm} strict modes]{Détermine si les permissions dans le fichier secret sont vérifiés. à true, le fichier ne doit pas être lisible par tout le monde}
\item[\hspace{1mm} hosts allow]{Spécifie une liste de motifs qui sont matchés avec l'ip ou hostname des clients. Si aucun motif ne match, la connexion est rejetée}
\item[\hspace{1mm} hosts deny]{Spécifie une liste de modifs qui sont matchés avec l'ip ou hostname des clients. si un motif match, la connexion est refusée}
\item[\hspace{1mm} reverse lookup]{Effectue une recherche inversée sur l'ip du client pour déterminer le nom d'hôte}
\item[\hspace{1mm} forward lookup]{Effectue une recherche sur les hôtes spécifiés dans les paramètre host allow/deny.}
\item[\hspace{1mm} ignore errors]{Ignore les erreurs d'E/S dans le service en décidant s'il lance la phase delete du transfert.}
\item[\hspace{1mm} ignore nonreadable]{Ignore complètement les fichiers qui ne sont pas lisibles par l'utilisateur.}
\item[\hspace{1mm} transfer logging]{Active le logging par fichier dans un format similaire à celui utilisé par les services ftp. Le service log toujours le transfert à la fin, donc si le transfert est annulé, rien n'est mentionné dans le fichier de log.}
\item[\hspace{1mm} log format]{Spécifie le format utilisé pour logger les transferts de fichier. l'apostrophe permet d'indiquer que la valeur doit être au format human-readable.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} \%a]{IP distante (mode service uniquement)}
\item[\hspace{6mm} \%b]{Nombre d'octets transférés}
\item[\hspace{6mm} \%B]{Bits de permissions du fichier}
\item[\hspace{6mm} \%c]{Taille totale des checksums de block reçus (seulement pour l'envoie)}
\item[\hspace{6mm} \%C]{Checksum du fichier complet}
\item[\hspace{6mm} \%f]{Nom du fichier}
\item[\hspace{6mm} \%G]{GID du fichier}
\item[\hspace{6mm} \%h]{Nom d'hôte distant (uniquement pour le mode service)}
\item[\hspace{6mm} \%i]{Liste itemizée de ce qui est mis à jours}
\item[\hspace{6mm} \%l]{Longueur en octets du fichier}
\item[\hspace{6mm} \%L]{La chaîne -> SYMLINK", " => HARDLINK", ou ""}
\item[\hspace{6mm} \%m]{Nom du module}
\item[\hspace{6mm} \%M]{mtime du fichier}
\item[\hspace{6mm} \%n]{nom du fichier, forme courte}
\item[\hspace{6mm} \%o]{L'opétation (recv, send, ou del)}
\item[\hspace{6mm} \%p]{PID du service}
\item[\hspace{6mm} \%P]{Chemin du module}
\item[\hspace{6mm} \%T]{Date courante}
\item[\hspace{6mm} \%u]{L'utilisateur authentifié}
\item[\hspace{6mm} \%U]{uid du fichier}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} timeout]{Remplace le choix du timeout du client.}
\item[\hspace{1mm} refuse options]{Spécifie une liste d'options qui son refusées par le service. Si une de ces options est reçue, le service affiche un message d'erreur et quite.}
\item[\hspace{1mm} dont compress]{motifs spécifiant les fichiers qui ne sont pas compressés}
\item[\hspace{1mm} pre-xfer exec, post-xfer exec]{Commande à lancer avant et/ou après le transfert. si pre-xfer exec échoue, le transfert est annulé. Les variables d'environnement suivantes sont définies:}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} RSYNC\_MODULE\_NAME]{Nom du module accédé}
\item[\hspace{6mm} RSYNC\_MODULE\_PATH]{Chemin configuré du module}
\item[\hspace{6mm} RSYNC\_HOST\_ADDR]{IP du client}
\item[\hspace{6mm} RSNYC\_HOST\_NAME]{Nom d'hôte du client}
\item[\hspace{6mm} RSYNC\_USER\_NAME]{Nom de l'utilisateur}
\item[\hspace{6mm} RSYNC\_PID]{Identifiant unique pour ce transfert}
\item[\hspace{6mm} RSYNC\_REQUEST]{pre-xfer uniquement: module/chemin spécifié par l'utilisateur}
\item[\hspace{6mm} RSYNC\_ARG\#]{Arguments}
\item[\hspace{6mm} RSYNC\_EXIT\_STATUS]{post-xfer uniquement: Valeur de sortie côté serveur.}
\item[\hspace{6mm} RSYNC\_RAW\_STATUS]{post-xfer uniquement: Valeur brut de sortie pour waitpid()}
\end{description}
 
\vspace{1cm}{\huge Directives config }
 
\
 
\hspace{1mm}  Il y a 2 directives disponibles qui permettent à un fichier de configuration d'incorporer le contenu d'autres fichiers: \&include et \&merge. Elles permettent de référencer un fichier ou un répertoire. Elles diffèrent dans la manière dont le contenu des fichiers sont considérés.
\vspace{5mm} \\
 
 
\hspace{1mm}  \&include traite chaque fichier plus distinctement, chacun héritant des défaut du fichier parent, en commençant par traitres les défaut/globaux, et laissant les défauts inchangés pour le parsing du reste du fichier parent
\vspace{5mm} \\
 
 
\hspace{1mm}  \&merge traite chaque fichier comme s'il était simplement inséré à la place de la directive
\vspace{5mm} \\
 
 
\hspace{1mm}  L'avantage de \&inclade est que l'on peut définir un ou plusieurs modules dans un fichier séparé sans s'inquiéter des effets inattendus entre les fichiers de modules auto-contenus. L'avantage de \&merge et que l'on peut charger des snippets qui peuvent être inclus dans plusieurs définitions de modules, et que l'on peut définir des valeurs globales qui affectent les connections
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Authentification forte }
 
\
 
\hspace{1mm}  Le protocole d'authentification utilisé dans rsync est un système de challenge réponse MD4 128bits. C'est une protection faible. Il est donc recommandé de lancer rsync dans ssh.
\vspace{5mm} \\
 
\end{flushleft}
\end{document}
