3 votes

Dovecot : supprimer les boîtes de réception inutilisées.

En utilisant Dovecot, j'ai rencontré un problème assez troublant en ce qui concerne la purge des boîtes de réception. Voici ma configuration :

  • Dovecot stocke ses utilisateurs/boîtes aux lettres sur un backend MySQL.
  • Postfix gère les transmissions de courrier électronique, et s'appuie sur Dovecot pour l'authentification.
  • Les boîtes de réception sont stockées dans /var/mail/domain/user .

C'est la configuration de base. Imaginez maintenant le scénario suivant :

  1. Je crée un utilisateur dans ma base de données (disons johndoe@mydomain.tld ), et commencez à envoyer et à recevoir des e-mails. Aucun problème, tout se passe bien.
  2. Je n'ai plus besoin de mon utilisateur, je le supprime simplement de la base de données, plus d'utilisateur.

Mais voilà le problème... En ce moment, /var/mail/mydomain.tld/johndoe ) existe toujours. Imaginez maintenant :

  • Un autre John Doe apparaît, et il veut une boîte de réception. J'ajoute johndoe@mydomain.tld à la base de données, super, ça marche !

Ce qui est amusant, c'est que l'ancien John Doe n'a pas supprimé ses e-mails avant de partir, et que le nouveau John Doe a eu accès au contenu de l'ancienne boîte aux lettres (comme les adresses sont les mêmes, on lui a donné le même emplacement de boîte aux lettres). Espérons que l'inconnu numéro 1 n'a pas laissé d'informations d'identification, de carte de crédit ou autre dans sa boîte de réception...

Voici donc ma question : Existe-t-il un moyen approprié de supprimer les boîtes de réception réelles lors de la suppression d'un utilisateur Dovecot ? Dans mon exemple, je voudrais /var/mail/mydomain.tld/johndoe à supprimer lorsque le premier John Doe disparaît (étape 2, au redémarrage du service peut-être ?). Maintenant, je pourrais faire cela de manière programmatique en utilisant mon application frontale (une application PHP qui remplit le backend MySQL), mais cela créerait un désordre avec les permissions (permettre à l'utilisateur web d'accéder aux boîtes aux lettres, non merci !)

2voto

guitar42697 Points 54

Dans notre configuration, nous utilisons postgres comme backend pour stocker user informations. Nous fixons le account_status a DELETED dans DB et avoir un cron qui prend une sauvegarde de tout le compte et les supprime du système de fichiers. Ce problème est discuté dans Dovecot. listes de diffusion également et la solution proposée était d'utiliser rm

rm -rf `doveadm user -f home $username`

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X