Postfix : patch pour la gestion des alias par fichier .forward

Boris HUISGEN
|
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