NOQUEUE: SYSERR

Diesen Beitrag schrieb ich 15 Jahre und 3 Monate zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 1 Minute
NOQUEUE: SYSERR(www): can not chdir(/var/spool/mqueue/): Permission denied

Laut Google ist das ein verbreitetes Problem. Doch in keinem der Threads, die ich fand, wurde auch eine Lösung angeboten. Daher hier in aller Kürze: der Fehler trat bei mir nach der Neuinstallation meines Servers mit PHP-5.2.5 und sendmail-8.14.2 auf. Und zwar dann, wenn aus einem PHP-Script heraus die mail()-Funktion aufgerufen wurde.

Der Fehler lässt vermuten, dass die Permissions auf /var/spool/mqueue fehlerhaft seien. Seit sendmail-8.12 haben die auf 0700 zu stehen (also drwx------), und das taten sie auch. Und auch ein Setzen auf 0777 (drwxrwxrwx, was natürlich völliger Irrsinn ist) bringt einen hier nicht weiter, die Mail wird trotzdem nicht ausgeliefert. Also mal einen Blick auf das sendmail-Binary werfen:

$ ls -la sendmail
-r-xr-sr-x  1 root  smmsp  654418 Mar  4 15:30 sendmail

Wir sehen, dass das SUID-Bit für die Gruppe gesetzt ist. Dieses habe ich wie folgt geändert:

$ chmod 4655 sendmail
$ ls -la sendmail
-rwSr-xr-x  1 root  smmsp  654418 Mar  4 15:30 sendmail
$ /etc/rc.d/sendmail restart

Danach tat alles so, wie es soll. Und achja: das verwendete System ist ein NetBSD-current.