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:
<code>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 deniedcode>
Erklärung:
Das SUID-Bit von <code>suidperlcode> ist sicherheitshalber standardmässig nicht gesetzt. Wenn also eine neue Version von <code>suidperlcode> 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 <code>QMAILQUEUEcode> gesetzt als Ersatz für das std. Programm <code>qmail-queuecode>. Dieser Ersatz wird meist in Form eines Perl-Scriptes geschrieben. Da die <code>qmail-queuecode> nur bei externen Einlieferungen greift, spukt er auch nur dabei Fehler aus.
Lösung:
chmod 4755 /usr/bin/suidperl