69. pepsi-list

Créer et gérer les listes de diffusion, leurs membres et leurs propriétaires.

69.1. Rôle

pepsi-list est l’outil en ligne de commande de l’exploitant pour le sous-système de listes de diffusion de Pepsi. Il se connecte via la section partagée [pepsi-postgres] et lit sa propre section [pepsi-list] pour la poignée de réglages qui appartiennent au serveur et non à une liste. Lancé en tant que root, il passe au compte de service pepsi avant de se connecter, si bien qu’aucun sudo -u pepsi n’est nécessaire. Il n’est pas setuid et ne doit pas le devenir. Référence : pepsi-list(1).

Ce sous-système est une réimplémentation de GNU Mailman 3 ; voir Listes de diffusion, qui le dit plus longuement et nomme ce qui a été repris d’amont.

69.2. Ce qu’il gère

  • Les domaines – les domaines de courrier dans lesquels des listes peuvent être créées. En enregistrer un ici est distinct de [pepsi-ingress] ACCEPTED_DOMAINS, et une liste dans un domaine qu’ingress n’accepte pas est une liste dont le courrier est refusé au RCPT.

  • Les listes – la création depuis un style, et chacun des 99 attributs que l’API REST de GNU Mailman 3.3.10 expose. list show les affiche tous ; list show --explain ajoute l’explication de chacun.

  • Les membres et les propriétaires – les quatre rôles (member, owner, moderator, nonmember). Un propriétaire obtient un compte utilisateur, parce qu’il se connecte à la console du propriétaire ; un simple abonné n’en a pas besoin.

  • Les interdictions – par liste ou à l’échelle du serveur, sous forme d’adresse ou d’expression rationnelle ancrée par ^.

  • Les réglages par liste propres à Pepsi – list set-ext. Ils sont délibérément invisibles pour l’API REST ; Listes de diffusion explique pourquoi.

69.3. Deux choses qu’il ne fait délibérément pas

Il ne demande pas la permission. members add abonne une adresse sans confirmation. C’est à cela qu’un outil en ligne de commande sert – migrer un effectif, corriger une erreur – et c’est aussi pourquoi il est dangereux : le flux de confirmation existe pour qu’une adresse prouve qu’elle veut être là. Ce flux, c’est l’adresse -join et le formulaire web qui le conduisent ; ceci en est le socle.

``owner reset-password`` affiche le mot de passe au lieu de l’envoyer. Le chemin en ligne de commande doit fonctionner quand le courrier est en panne, c’est-à-dire précisément quand un exploitant s’en sert. La manière ordinaire de changer un mot de passe est le parcours de réinitialisation web à /lists/reset, qui envoie un lien par courrier.

69.4. Vérifier un serveur

pepsi-list check valide ce qui reste muet en production. Une cible d’étape mal configurée échoue bruyamment au premier message qui l’atteint ; une liste sans propriétaire accumule simplement des messages retenus que personne ne voit, et une liste qui demande plus d’indexation par trigrammes que le serveur n’autorise en obtient simplement moins. Chaque constat porte un remède.

$ pepsi-list check
error: announce@lists.example.org: has no owner
    `pepsi-list owner add announce@lists.example.org <address>`, or set
    [pepsi-list] SITE_OWNER so its notices reach somebody
note: site: archive search: full text and trigram (substring, fuzzy)

69.5. Configuration

Voir la section [pepsi-list] de pepsi.conf(5), et Listes de diffusion pour ce que chaque option décide.