Tagesarchiv für den 28. November 2007

T-DNS

Mittwoch, den 28. November 2007

Liebe Telekom… wenn ihr schon einen DNS-Server abschalten müsst: bitte schaltet ihn einfach ab, und leitet nicht alle Anfragen auf eine eigene Website um!

T-DNS

So geschehen hinter einer Telekom-Standleitung (bei der der Router ohnehin keine DNS-Einstellungen per DHCP empfängt ;) ). Wäre der besagte DNS-Server einfach abgeschaltet worden, wäre einfach der nächste konfigurierte DNS-Server verwendet worden.

Was lernen wir daraus? In solchen Fällen per Nagios prüfen, ob die externen DNS-Server auch externe Ziele korrekt auflösen (geht natürlich nur bei Zielen, bei denen keine IP-Änderungen zu erwarten sind).

PHP-Frust

Mittwoch, den 28. November 2007

PHP gehört wirklich nicht zu meinen Lieblings-Sprachen. Und es wird mir auch zunehmend unsympathischer.

Neuestes Beispiel: ein Kunde hat ein Problem mit einem Script, welches unter anderem irgendwo Dateien auf seinen Webspace hochlädt (per PHP-File-Upload). Die neu erstellten Dateien haben aber “nur” die Rechte 0600, obwohl diese eigentlich 0644 haben sollten. umask() ist richtig gesetzt, ein explizites chmod() nach dem Upload ist nicht möglich (es handelt sich um ein gekauftes, codiertes Script), und bei seinem bisherigen Webhoster hat das Script nach Angaben des Kunden wohl einwandfrei funktioniert.

Andere Baustelle: eine Kundin zieht eine Contenido-CMS-Website auf einen Webspace bei uns um. Gleiches Problem: nach Uploads sind die Rechte immer falsch. In diversen Contenido-Foren weisen deren Entwickler die Notwendigkeit eines chmod() nach dem move_uploaded_file()-Aufruf von sich - “der Provider ist für eine anständige umask() verantwortlich”.  Wenn das Problem nur in der umask() bestehen würde…
Nun haben wir die Wurzel allen Übels identifiziert: PHP selbst. :grr:

Bug #42291: wird eine Datei mit PHP hochgeladen und mit move_uploaded_file() auf ein Ziel verschoben welches im gleichen Filesystem wie die temporäre Datei liegt (=>rename), dann werden die Rechte fälschlicherweise auf 0600 gesetzt statt auf 0644. Da bei uns aus Sicherheitsgründen jeder Kunde sein eigenes tmp-Verzeichnis innerhalb seines geschützten Kundenverzeichnisbaums hat (also im gleichen Filesystem), tritt genau dieser Fall ein.

Der Workaround für die betroffenen Kunden ist also, diesen ein tmp-Verzeichnis auf einer anderen Partition einzurichten… ein kurzer Test hat das bestätigt.