Christian Seiler: Apache Zugriffsschutz mit Systemusern

Beitrag lesen

Hallo Dennis,

[error] (9)Bad file descriptor: Could not open password file: (null)

Aus irgend einem Grund will der open(NULL) machen (oder fopen(NULL)) - das kann natürlich nicht gehen. Warum der das machen will, weiß ich so auf Anhieb auch nicht, Du könntest aber mal den ganzen Apache stracen [1]. Das gibt natürlich ne Menge Ausgabe, deswegen würde ich

strace -s 128 -o httpd.strace -ff BEFEHL

wobei BEFEHL der Befehl zum Starten des Apaches ist. Das Produziert natürlich ne RIESEN-Menge an Ausgabe in die Dateien httpd.strace.* (und Du solltest den Apache sofort nach der Logmeldung wieder abschießen). Dann kannst Du mittels

grep "Bad file descriptor: Could not open password file: (null)" httpd.strace.*

herausfinden, in welcher Datei der Trace für den Prozess liegt, der den Fehler produziert hat, diese Datei angucken und kurz vor der Ausgabe dieser Meldung nach verdächtigen System-Calls Ausschau halten. Wenn Dir das alles nix sagt kannst Du ja mal die 100 Zeilen vor der Ausgabe dieses Fehlers in irgend einen Nopaste-Dienst kopieren und Dich hier nochmal melden - vielleicht kann hier jemand etwas mehr damit anfangen.

Viele Grüße,
Christian

[1] strace zeichnet alle System Calls auf, die ein Befehl durchführt. -s 128 heißt, dass Strings erst nach 128 Zeichen gekürzt werden sollen, -o httpd.strace heißt, die Ausgabe soll in Dateien namnes httpd.strace.zahl gespeichert werden, -ff heißt, dass fork()-Aufrufen (d.h. Aufrufe, die neue Prozesse erzeugen) gefolgt werden soll und die Kindprozesse auch getracet werden sollen.