Le programme sendmailutilise un certain nombre de fichiers et de répertoires. La plupart des chemins sont modifiables. Nous donnons ici une arborescence type pour une installation standard de la version 8.12 de sendmailsur une version issue de Berkeley 4.4.
Fichier de configuration. Ce chemin est modifiable sur la ligne de commande de sendmail(argument -C d'appel), mais cela n'est utilisable qu'à des fins de test : les UA appellent en effet sendmailsans donner de paramètre autre que les adresses des destinataires.
Configuration « compilée », obsolète à présent.
Les anciennes versions de sendmailutilisaient
une version compilée (frozen configuration)
du fichier sendmail.cf. Toutefois, vues les
performances accrues des processeurs, l'intérêt de
la version compilée est devenu nul. De plus,
l'utilisation d'une version compilée génait la mise
au point du fichier de configuration, et était donc
fortement déconseillée.
Ce chemin n'était pas
modifiable.
Fichier de configuration spécifique pour la soumission des messages.
Les aliases en clair. Ce chemin est modifiable (option OA du fichier de configuration, ou argument équivalent sur la ligne de commande).
Version « compilée » des aliases, générée par newaliases ou sendmail -bi. Les anciennes versions (ou les versions de sendmailcompilées sans le support de db) utilisaient les fichiers dbm correspondants : aliases.dir et aliases.pag. La version compilée doit forcément résider dans le même répertoire que la version en clair.
Fichier contenant l'aide affichée lors du dialogue SMTP suite à la commande HELP. Ce chemin est modifiable (option OH du fichier de configuration, ou argument équivalent sur la ligne de commande).
Informations comptables. Si ce fichier existe, sendmaily écrit des statistiques à chaque appel d'un agent de transport (mailer). Ces statistiques sont affichées en clair par le programme mailstats. Par exemple :
soleil$ mailstats Statistics from Fri Oct 18 09:08:28 1996 M msgsfr bytes_from msgsto bytes_to Mailer 3 2308 91780K 2619 93662K smtp 4 159 443K 0 0K local ======================================== T 2467 92223K 2619 93662K
Pour chaque agent (ici, local et smtp), mailstats affiche le numéro de l'agent dans la configuration courante (c'est-à-dire l'ordre d'apparition dans le fichier sendmail.cf), le nombre de messages reçus (msgsfr), la taille totale de tous les messages reçus (bytes_from), le nombre de messages transmis (msgsto) et la taille totale des messages transmis (bytes_to) par cet agent.
Ce fichier n'est pas indispensable. Si on veut utiliser ces statistiques, il faut avoir créé ce fichier au préalable par :
cp /dev/null /etc/mail/statistics
chmod 644 /etc/mail/statistics
Les boîtes aux lettres des utilisateurs. Ce répertoire n'est pas connu de sendmail, mais il est utilisé par /bin/mail lors de la remise physique du message, ainsi que par les UA pour lire ces messages. Il n'est donc pas facilement modifiable.
Ce répertoire est la file d'attente des messages. Ceux-ci
sont entreposés à cet endroit pendant un très court instant, ou
lorsque le site destinataire ne répond pas.
La file d'attente est consultable avec l'utilitaire mailq
ou, ce qui revient au même, sendmail -bp
.
Ce chemin est modifiable (option OQ du fichier de
configuration, ou argument équivalent sur la ligne de commande).
Ce répertoire est la file d'attente des messages en cours de soumission, entreposés lorsque le serveur SMTPne répond pas. Attention aux droits : ce répertoire doit appartenir au groupe smmsp et être lisible et modifiable par ce groupe.
Le numéro de processus de sendmail(sur la première ligne), ainsi que les arguments (sur la deuxième ligne) avec lesquels il est appelé par l'instance qui agit comme démon et serveur SMTP.
Le programme lui-même. Ce chemin n'est généralement pas modifiable (ou modifiable à condition de laisser un lien dans le répertoire /usr/sbin) car nombre de programmes (les UA) codent ce chemin en dur.
Ce programme ne fait pas partie de sendmail, à strictement parler, mais c'est l'agent qui sert à déposer les messages dans les boîtes aux lettres des utilisateurs.
C'est un lien sur sendmailpour compiler le fichier des aliases. L'appel de newaliases correspond en fait à l'appel de sendmailavec l'option -bi.
C'est un lien sur sendmailpour visualiser le contenu de la file d'attente. L'appel de mailq correspond en fait à l'appel de sendmailavec l'option -bp.
C'est un lien sur sendmail(à partir de la version 8.8) pour visualiser l'état des connexions récentes. L'appel de hoststat correspond en fait à l'appel de sendmailavec l'option -bh.
C'est un lien sur sendmail(à partir de la version 8.8) pour effacer l'état des connexions récentes. L'appel de purgestat correspond en fait à l'appel de sendmailavec l'option -bH.
Fichiers de logs. Voir 2.7.1, page .
Note importante : à partir de la version 8.9, sendmail est devenu très rigoureux, voire même paranoïaque, sur un certain nombre de points touchant à la sécurité. Ainsi, par exemple, sendmailcontrôle les permissions associées tant aux fichiers qu'aux répertoires englobants : si un fichier ou un répertoire englobant est accessible en modification à tous les utilisateurs du système, sendmailrefusera de fonctionner correctement. De même si un de ces fichiers est en réalité un lien. Il s'agit des fichiers suivants :
Plutôt que de forcer sendmailà accepter des répertoires
ouverts en écriture, mieux vaut faire un chmod go-w ...
et un chmod root ...
.