[postfix] pipe alias permission denied

Carsten horde-groupware at familie-lahme.de
Di Mär 13 11:23:40 CET 2018



Am 13.03.2018 um 08:34 schrieb Carsten:
>
>
> Am 12.03.2018 um 21:52 schrieb Walter H.:
>> On 12.03.2018 20:29, Carsten wrote:
>>>
>>>
>>> Ja, postfix ist chrooted in der master.cf.
>>> Jetzt habe angefangen, zu experimentieren, aber bis jetzt hat nichts 
>>> geholfen.
>>> Zum Beispiel habe ich einfach mal die "/etc/passwd" und die 
>>> "/etc/group" in das Verzeichnis "/var/spool/postfix/etc" kopiert und 
>>> postfix neu gestartet.
>>> Leider ohne eine sichtbare Änderung.
>>> Die Frage scheint also lauten zu müssen: Wie bekomme ich den chroot 
>>> des postfix dazu, eine group-datei zu lesen?
>> SELinux oder so kommt nicht zusätzlich ins Spiel, oder ist SELinux 
>> nur ein Feature von RHEL basierten Linuxen, was bei Dir ja nicht der 
>> Fall ist ...
>>
>> Walter
>>
>
> Hallo,
> SELinux hatte ich auch schon mal im Verdacht, ebenso, wie Apparmor, 
> aber SELinux ist nicht aktiviert und Apparmor nur für den mysql 
> deffiniert.
> und es bleibt ja im Raum, daß es von der Kommandozeile -also ohne den 
> chroot; funktioniert.
>
> Gruss
> Carsten

Moin nochmal,
ich bekomm' hier echt einen an der Waffel -gibt Menschen, die behaupten, 
ich hätte da schon eine kleben ;-)

chroot oder nicht chroot. Das ist hier die Frage.
Laut syslog ist dieser Prozess: "postfix/local" für das Ausführen der 
aliases Pipe zuständig -zumindest wird es so im Syslog gemeldet: "..Mar 
13 11:08:06 derdapp004 postfix/local[10609]: 8D8E741E10: 
to=<whups at localhost>, ..."

Schaue ich nun in die master.cf, so steht dort in der Zeile für den local:
"....
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
..."
was sich für mich ließt, daß er NICHT im chroot läuft.
Warum sollte also der Prozess die /etc/group nicht ziehen, wie die 
Ausgabe von $(groups) im Script vermuten läßt:
"...
#!/usr/bin/php
<?php
$shellex = shell_exec("logger INFO whoami: $(whoami)");
$shellex = shell_exec("logger INFO who am i: $(who am i)");
$shellex = shell_exec("logger INFO my id: $(id)");
$shellex = shell_exec("logger INFO my groups: $(groups)");
$shellex = shell_exec("touch /tmp/hallowelt.ini");
..."
ergibt:
"...
Mar 13 11:08:06 derdapp004 logger: INFO whoami: postfix-pipe
Mar 13 11:08:06 derdapp004 logger: INFO who am i:
Mar 13 11:08:06 derdapp004 logger: INFO my id: uid=1001(postfix-pipe) 
gid=1002(postfix-pipe) groups=1002(postfix-pipe)
Mar 13 11:08:06 derdapp004 logger: INFO my groups: postfix-pipe
..."

Komme ich aus der Kommandozeile mit einem
"...
sudo -u postfix-pipe /tmp/testmail
..."
steht im syslog:
"...
Mar 13 11:19:24 derdapp004 logger: INFO whoami: postfix-pipe
Mar 13 11:19:24 derdapp004 logger: INFO who am i:
Mar 13 11:19:24 derdapp004 logger: INFO my id: uid=1001(postfix-pipe) 
gid=1002(postfix-pipe) groups=1002(postfix-pipe),1001(www-horde)
Mar 13 11:19:25 derdapp004 logger: INFO my groups: postfix-pipe www-horde
..."

Inhalt der /tmp/testmail:
"...
echo "From: root@[mydn.tld]_
To: whups@[mydn.tld]_
subject: Monitoring: Testticket_
_
Hello World_
_"|/usr/bin/whups-mail-filter -g -a carsten@[mydn.tld] -Q 5;
..."

Ich habe die MANPAGES von Postfix jetzt rauf und runter gelesen, aber 
irgendwas muss ich übersehen, oder?

Ich bin.... not amused....
gruss
Carsten


Mehr Informationen über die Mailingliste postfix-users