Problem mit Safe-Mod und mkdir()

Apache, Lighttpd, nginx, Cherokee
johnboos
Posts: 9
Joined: 2006-01-15 01:20

Problem mit Safe-Mod und mkdir()

Post by johnboos » 2006-10-20 11:47

Hallo zusammen,

Habe schon viel hilfreiches in eurem Forum gefunden, nur leider konnte ich bisher zu meinem neusten Problem nirgends was finden - mag sein das ich den Suchfunktionen verschiedener Foren sowie Google die falschen Fragen stelle.


Diesmal habe ich folgendes Problem...

Wir haben im Betrieb einen Manage Server mit Debian Sarge (PHP 4.4 ).
Safe_mode ist auf On (kann auch nicht geändert werden)
Register_Globals auf off

Wenn ich mit Hilfe einer PHP-Datei ein Verzeichnis erstelle (z.B. „ordner1"), bekommt das Verzeichnis Recht www-data :: www-data (mit chmod 777).

Versuche ich aber ein Unterverzeichnis anlegen (z.B. „ordner1/ordner2"), bekomme ich sofort die Meldung:
Warning: mkdir() [function.mkdir]: SAFE MODE Restriction in effect. The script whose uid is 647 is not allowed to access /var/www/web1/html/ordner1 owned by uid 33 in /var/www/web1/html/mkdir.php on line 4
UID 647 ist web1
OWNER 33 ist www-data

Das Komische ist das PHP, das erste Verzeichnis mit www-data erstellt und im Unterverzeichnisse sich aber als web1 ausgibt.


Hoffe ihr könnt mir da weiter helfen...

Besten Dank!

mattiass
Userprojekt
Userprojekt
Posts: 608
Joined: 2005-12-16 17:57

Re: Problem mit Safe-Mod und mkdir()

Post by mattiass » 2006-10-20 12:14

johnboos wrote:
Wenn ich mit Hilfe einer PHP-Datei ein Verzeichnis erstelle (z.B. „ordner1"), bekommt das Verzeichnis Recht www-data :: www-data (mit chmod 777).
Maybe Off Topic: Gibt es irgendwelche Gründe, aus PHP heraus Ordner anzulegen? Dateien in bereits vorhandene Ordner zu schreiben, kann ich noch nachvollziehen, aber auch hier ist das Risiko zu groß, dass durch eine Schlamperei die Daten irgendwohin geschrieben werden, wo sie nicht hingehören.

Ich versuche deshalb, Dateien immer als BLOBs in eine Datenbank zu schreiben und liefere sie durch ein PHP-Script (Header-Manipulation!) mit dem richtigen MIME-Type aus. Mit ein paar kleinen Tricks (mod_rewrite), kann auch ein echte Verzeichnisstruktur emuliert werden. Spätere Änderungen an Pfaden oder Dateinamen sind so auch leichter möglich als bei Dateien, die im Dateisystem verteilt sind.

Wenn es sich bei den problematischen Scripten nicht um fertige, unbekannte Scripte handelt, würde ich zu meiner Methode greifen. Ich bin auch gerne bereit, mit Codeschnippseln bei der Umsetzung zu helfen.

johnboos
Posts: 9
Joined: 2006-01-15 01:20

Re: Problem mit Safe-Mod und mkdir()

Post by johnboos » 2006-10-20 12:34

Vielen Dank MattiasS für die schnelle Antwort.

Ich habe eine PHP-Datei „install.php", die ein ganzes CMS mit ca. 2400 Dateien und 80 Ordnern installieren sollte.

Deswegen ist die Lösung mit der Datenbank nicht so, da es einfach zu langsam wäre.

Gibt es vielleicht eine andere Lösung, so das PHP wie FTP sich z.B. als web1::web1 beim ändern und anlegen der Dateien und Ordnern ausgibt.

mattiass
Userprojekt
Userprojekt
Posts: 608
Joined: 2005-12-16 17:57

Re: Problem mit Safe-Mod und mkdir()

Post by mattiass » 2006-10-20 12:39

johnboos wrote: Ich habe eine PHP-Datei „install.php", die ein ganzes CMS mit ca. 2400 Dateien und 80 Ordnern installieren sollte.
Gibt es dieses CMS nicht auch als Tarball, der sich auf der Shell entpacken lässt?

johnboos
Posts: 9
Joined: 2006-01-15 01:20

Re: Problem mit Safe-Mod und mkdir()

Post by johnboos » 2006-10-20 13:34

Auf einem ManageServer habe ich leider kein Zugriff über SSH auf die einzelne Webs, da kein Root-Zugriff möglich ist.

mattiass
Userprojekt
Userprojekt
Posts: 608
Joined: 2005-12-16 17:57

Re: Problem mit Safe-Mod und mkdir()

Post by mattiass » 2006-10-20 13:36

johnboos wrote:Auf einem ManageServer habe ich leider kein Zugriff über SSH auf die einzelne Webs, da kein Root-Zugriff möglich ist.
Oder über FTP eine komplett enpackte Ordnerstruktur rüberschieben?

johnboos
Posts: 9
Joined: 2006-01-15 01:20

Re: Problem mit Safe-Mod und mkdir()

Post by johnboos » 2006-10-20 13:41

Oder über FTP eine komplett einpackte Ordnerstruktur rüberschieben?
Wird mir vermutlich nichts anderes übrig bleiben.

Ich dank Dir für die Mühe.

mattiass
Userprojekt
Userprojekt
Posts: 608
Joined: 2005-12-16 17:57

Re: Problem mit Safe-Mod und mkdir()

Post by mattiass » 2006-10-20 13:46

johnboos wrote:
Oder über FTP eine komplett einpackte Ordnerstruktur rüberschieben?
Wird mir vermutlich nichts anderes übrig bleiben.
Ist IMHO die sinnvollste Lösung, dabei sollten Berechtigungen erhalten bleiben. Probier auch mal, ob Du auf die Webverzeichnisse Zugang mittels SCP hast. Vielleicht hast Du Glück und der Hoster richtet "scponly" als Shell ein.

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Problem mit Safe-Mod und mkdir()

Post by flo » 2006-10-20 14:43

Wenn Du die komplette Webrpäsenz "chown"st, dürfte das Problem auch behoben sein, aber beim managed-Server ist das natürlcih so oder so nicht wirklich einfach.

flo.

johnboos
Posts: 9
Joined: 2006-01-15 01:20

Re: Problem mit Safe-Mod und mkdir()

Post by johnboos » 2006-10-20 18:06

Wenn Du die komplette Webrpäsenz "chown"st, dürfte das Problem auch behoben sein, aber beim managed-Server ist das natürlcih so oder so nicht wirklich einfach.
chown währe natürlich das Beste, geht aber nicht.

Ich habe jetzt einfach eine Datei "start.php" erstellt, die kopiert einfach die "install2.php" nach "install.php". Dadurch hat die install.php www-data Recht und somit vollen Zugriff.