Ich hatte vor kurzem ein Problem mit einem meiner Webserver. Es gibt dort
einen Cronjob, der unter dem Benutzer www-data
laeuft und ein PHP-Skript
ausfuehrt.
Jetzt wurde dieses Skript aber nicht aufgerufen und in den Logs vom Cronjob tauchte auch nichts auf. Also wirklich gar nichts. Nicht mal ein Debug-Statement ganz am Anfang des Skripts.
Nach ein Bisschen Suchen viel mir folgender Eintrag im Syslog auf:
Jul 3 12:26:01 ns CRON[16952]: Authentication failure
Nach einiger Recherche fand ich heraus, dass diese Zeile auf ein Problem mit
PAM hinweist. In meinem Fall fehlte in der Datei /etc/shadow
die Zeile
fuer den User, in /etc/passwd
war der Eintrag jedoch vorhanden. Schnell
auf nixCraft nach dem Format geschaut und einfach die entsprechende Zeile
zum Testen eingefuegt.
Siehe da, der Cron wirft keinen Fehler mehr und wird auch ausgefuehrt.
Um den User richtig in die shadow-Datei zu bringen, kann auch einfach mit
passwd USER
ein Passwort vergeben werden und mit passwd -d USER
wird es wieder geloescht. Durch diese Prozedur wird der User sauber in der
shadow-Datei angelegt und anschließend wird durch das Leeren des Passworts der
direkte Login wieder verhindert.