Hallo Zusammen,
ich hätte da noch eine SAFEMODE Frage. Wie ich im Forum gesehen habe gab es da ja schon heiße Antworten zu :-)
Ich habe folgenden Fehler:
SAFE MODE Restriction in effect. The script whose uid is 659 is not allowed to access /home/www/web2/html/k1 owned by uid 0
Mein Script liegt in:
/home/www/web2/html/k/script.php
und will auf
/home/www/web2/html/k1/verz1/info.txt
zugreifen!
Ich habe jetzt für jeden Kunden ein Verzeichniss in meinem web2 angelegt k1 ... k9 und jeder Kunde hat zu seinem Verzeichniss FTP Zugangsdaten somit können diese Files direkt dort ablegen. Jetzt brauch ich ein Script welches alle Verzeichnisse durchläuft und die Dateien einließt. Das habe ich soweit auch fertig nur bekomme ich obige Fehlermeldung.
Sehe ich jetzt folgendes richtig?
1. Ich kann den Scriptowner nicht so einstellen das er auf alle k1..k9 Verzeichnisse zugreifen kann, da die owner wegen ftp unterschiedlich sind.
2. Ich kann das Problem nur lösen in dem ich den SafeMode ausschalte, obwohl mir das nicht so lieb ist?
2.1 In php.ini steht bereits safe_mode=off, ich muss also nur noch in die httpd.conf die Zeile -> php_admin_flag safe_mode Off eintragen. Dann ist aber für alle Domains der SafeMode aus. Kann ich den SafeMode auch nur für eine Domain abschalten? Wo finde ich die httpd.conf? Muß ich irgendwas neustarten? wenn ja, wie?
3. Oder gibts ne bessere Lösung als den SafeMode auszuschalten?
So das wärs auch schon, danke schonmal für eure Hilfe!
Und nochmal SAFEMODE ;-)
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Und nochmal SAFEMODE ;-)
SafeMode anlassen und PHP als CGI. Dateien haben dann immer (auch nach upload per PHP) den Owner des Benutzers.
Re: Und nochmal SAFEMODE ;-)
Hallo Alexander,
das verstehe ich leider nicht?
php als cgi?
Der Upload der Files erfolg nicht über ein Script sondern über ein FTP Proggi!
das verstehe ich leider nicht?
php als cgi?
Der Upload der Files erfolg nicht über ein Script sondern über ein FTP Proggi!
Re: Und nochmal SAFEMODE ;-)
Hallo Maik,
lese doch einfach mal das: http://www.rootforum.org/forum/viewtopic.php?t=15322
bye
arty
lese doch einfach mal das: http://www.rootforum.org/forum/viewtopic.php?t=15322
bye
arty
Re: Und nochmal SAFEMODE ;-)
Danke arty jetzt bin ich schlauer. Bleibt aber noch die Frage ob das funktioiert?
Aber kurz was anderes vorweg. Ich will nach einlesen der Datei diese dann auch löschen, jedoch schreibt er mir
unlink() failed (Permission denied)
Ich habe probeweise ein k verzeichniss (k1) mit chown ... den gleichen nutzer zugewiese wie das script um zu testen ob das script sonst läuft und es läuft supie, nur kann das script das file nicht löschen.
Soviel dazu, komme ich mal zurück zum 1. Problem.
Wenn ich PHP als CGI laufen lassen dann:
also /home/web2/html/k1 (für Kunde1: Zugang web2f1 Pass....)
Somit ist der Benutzer web2f1 besitzer des Ordners k1, aber mein Script wird doch dann immernoch als Benutzer web2 laufen (weil html dem Benutzer web2 gehört), der leider keine Rechte in dem Verzeichniss k1 hat, welches web2f1 gehört. Ã?hnlich dem FTP Problem. Der Chef
web2 kann in ein Verzeichniss welches dem Nutzer web2f1 gehört keine Files mehr hochladen, obwohl web2 eigentlich höhergestellt ist.
Wenn ich das richtig sehe ist auch mit PHP als CGI das Problem noch nicht gelöst. Wenn ich den SafeMode ausschalte, könnte ich dann auch die Datei löschen die von web2f1 hochgeladen wurde?
Kann ich für das Script nicht einfach einen Superuser anlegen der das alles darf?
Aber kurz was anderes vorweg. Ich will nach einlesen der Datei diese dann auch löschen, jedoch schreibt er mir
unlink() failed (Permission denied)
Ich habe probeweise ein k verzeichniss (k1) mit chown ... den gleichen nutzer zugewiese wie das script um zu testen ob das script sonst läuft und es läuft supie, nur kann das script das file nicht löschen.
Soviel dazu, komme ich mal zurück zum 1. Problem.
Wenn ich PHP als CGI laufen lassen dann:
Problem ist nur ich habe das ganze Projekt unter /home/web2/html/meinscript.php, also Nutzer web2! Jetzt leg ich jedoch für das Projekt Kundenverzeichnisse an und gebe den kunden FTP ZugangsdatenPHP als CGI läuft hingegen unter dem jeweiligen Benutzerrechten, in /home/user42 als user42.
also /home/web2/html/k1 (für Kunde1: Zugang web2f1 Pass....)
Somit ist der Benutzer web2f1 besitzer des Ordners k1, aber mein Script wird doch dann immernoch als Benutzer web2 laufen (weil html dem Benutzer web2 gehört), der leider keine Rechte in dem Verzeichniss k1 hat, welches web2f1 gehört. Ã?hnlich dem FTP Problem. Der Chef
Wenn ich das richtig sehe ist auch mit PHP als CGI das Problem noch nicht gelöst. Wenn ich den SafeMode ausschalte, könnte ich dann auch die Datei löschen die von web2f1 hochgeladen wurde?
Kann ich für das Script nicht einfach einen Superuser anlegen der das alles darf?
