Postfix : patch pour la gestion des alias par fichier .forward
- Lundi 13 février 2012
- Par Boris HUISGEN
- Ecrire
Dans le cas d’une configuration mail par comptes utilisateurs locaux (utilisateurs systèmes), il est courant de configurer un alias de redirection par le biais du fichier .forward situé dans le répertoire personnel de chaque utilisateur. Le problème est qu’il est impossible de modifier ce fichier au travers d’une interface web ou encore son webmail vu que des restrictions d’accès s’appliquent à ces fichiers. En particulier , la vérification du propriétaire sous Postfix :
Feb 12 17:04:47 mail postfix/local[15208]: warning: file /home/bhuisgen/.forward has bad owner uid 33
La redirection mail est évidemment bloquée. Le patch proposé vise donc à supprimer ce test et permettre l’envoi du mail vers l’adresse de redirection :
root@mail:~# apt-get build-dep postfix root@mail:~# apt-get source postfix root@mail:~# cd postfix-2.7.1/ root@mail:~# cd src/local/
Le patch à appliquer est le suivant :
--- dotforward.c.old 2012-02-12 17:35:34.000000000 +0100
+++ dotforward.c 2012-02-12 17:36:23.000000000 +0100
@@ -231,12 +231,12 @@
state.msg_attr.exp_from = state.msg_attr.local;
if (S_ISREG(st.st_mode) == 0) {
msg_warn("file %s is not a regular file", STR(path));
- } else if (st.st_uid != 0 && st.st_uid != usr_attr.uid) {
+ } /*else if (st.st_uid != 0 && st.st_uid != usr_attr.uid) {
msg_warn("file %s has bad owner uid %ld",
STR(path), (long) st.st_uid);
} else if (st.st_mode & 002) {
msg_warn("file %s is world writable", STR(path));
- } else if ((fd = open_as(STR(path), O_RDONLY, 0, usr_attr.uid, usr_attr.gid)) < 0) {
+ } */else if ((fd = open_as(STR(path), O_RDONLY, 0, usr_attr.uid, usr_attr.gid)) < 0) {
msg_warn("cannot open file %s: %m", STR(path));
} else {
root@mail:~# patch -p0 < patch-fix_forward-20120213
Reste à compiler et installer :
root@mail:~# cd ../.. root@mail:~# dpkg-buildpackage -rfakeroot root@mail:~# cd .. root@mail:~# dpkg -i postfix_2.7.1-1+squeeze1_amd64.deb
Et j’en profite pour vous signaler que j’ai fait un minuscule plugin pour le webmail RoundCube, disponible ici. afin de gérer les .forward.