Problem:
Nach einem Update mit Yast, welches u.a. ein neues Perl-Paket enthielt funktioniert Qmail nur noch zum Teil. Interne Emails können verschickt werden, PHP-Scripte, etc. können ebenfalls Emails senden. Sobald man aber von ausserhalb Emails einliefern will (egal ob per SMTP-Auth oder nicht) quitiert der Server und im maillog steht folgendes:
X-Qmail-Scanner-1.24st visas: [h68542611376778016966519] cannot open /var/spool/qmailscan/qmail-scanner-queue-version.txt - did you initialise the system by running "qmail-scanner-queue.pl -z"? - Permission denied
Erklärung:
Das SUID-Bit von suidperl
ist sicherheitshalber standardmässig nicht gesetzt. Wenn also eine neue Version von suidperl
eingespielt wird, funktionieren alle Programme/Scripte, die dies brauchen nicht mehr.
Aber was hat Qmail mit Perl zu tun?
Die häufigste Lösung um einen Virenscanner/SpamAssassin in Qmail zu integrieren läuft über den Qmailqueue-Patch. Hierbei wird in Qmail-Config die Variable QMAILQUEUE
gesetzt als Ersatz für das std. Programm qmail-queue
. Dieser Ersatz wird meist in Form eines Perl-Scriptes geschrieben. Da die qmail-queue
nur bei externen Einlieferungen greift, spukt er auch nur dabei Fehler aus.
Lösung:
chmod 4755 /usr/bin/suidperl