mit php verzeichniserstellen, kann aber nicht zugreifen

Alles, was PHP betrifft, kann hier besprochen werden.

mit php verzeichniserstellen, kann aber nicht zugreifen

Postby tHarry » 20. December 2004 22:01

Hallo!

Linux - SAFE_MODE = ON

Das Problem ist das ich mit MKDIR ein Verzeichnis anlege und die Rechte auf 777 setze.

mkdir("public/4", 0777);
chmod("public/4", 0777); # chmod weil rechte bei mkdir nicht übernommen wurden

wenn ich dann via CHDIR auf dieses Vezeichnis zugreifen will... geht das nicht. SAFE_MODE restriction mit UID

Wenn ich ein Bild-Upload mache und davon Thumbnails-kreieren lasse, werden Diese zwar in das Verzeichnis ("public/4") angelegt, aber die Bilder haben/bekommen keine Rechte (000) und kann im Webbrowser nicht ansehen werden.
Ich kann die Rechte auch nicht via FTP ändern.

Versucht hätte ich auch, direkt nach der Verzeichnis Erstellung - das Verzeichnis die Benutzerrechte - statt Apache - den FTP User zu geben. Geht aber auch nicht.. auch wegen SAFE_MODE

Hoffe mir kann da wer helfen!!
SAFE_MODE kann nicht deaktiviert werden.

Liebe Grüße,

Harry
Whistler/Sp2, AMD2000+, Xampp 1.5.2,
Whistler/Sp2, P4/2Ghz, Xampp 1.5.2,
Apache und MySQL als Service
---------------
Max OS X 10.4 - iBook G4 - Xampp 0.5
tHarry
 
Posts: 54
Joined: 19. April 2003 17:58

Postby adi99 » 21. December 2004 17:36

Safemode restrictions richtig gesetzt?
User avatar
adi99
 
Posts: 115
Joined: 15. January 2004 16:08
Location: Switzerland

Postby tHarry » 21. December 2004 20:26

was meinst du damit?
Whistler/Sp2, AMD2000+, Xampp 1.5.2,
Whistler/Sp2, P4/2Ghz, Xampp 1.5.2,
Apache und MySQL als Service
---------------
Max OS X 10.4 - iBook G4 - Xampp 0.5
tHarry
 
Posts: 54
Joined: 19. April 2003 17:58

Postby adi99 » 21. December 2004 21:20

benutzt du Confixx oder so etwas?
User avatar
adi99
 
Posts: 115
Joined: 15. January 2004 16:08
Location: Switzerland

Postby tHarry » 22. December 2004 12:51

ich weiß das der Server mit Confixx verwaltet wird.
ich habe aber kein zugriff darauf, ich soll nur mein photoalbum einbinden, aber da macht safe_mode eben ein problem..
Whistler/Sp2, AMD2000+, Xampp 1.5.2,
Whistler/Sp2, P4/2Ghz, Xampp 1.5.2,
Apache und MySQL als Service
---------------
Max OS X 10.4 - iBook G4 - Xampp 0.5
tHarry
 
Posts: 54
Joined: 19. April 2003 17:58

Postby deepsurfer » 22. December 2004 13:15

Gedankensprung, bin mir nicht sicher:

mkdir("public/4", 0777);
Die 0777 ist hierbei unnötig, da durch mkdir das verzeichniss automatisch dem User gehört und 755 rechte hat


chmod("public/4/", 0777);
wenn ich mich jetzt nicht irre, müsste hinter der 4 ein slash hin, da sonst der server die 4 als Datei ansieht und nicht als Verzeichnis.

chmod("public/4/*", 0644);
als nächste Operation ein stern setzen damit alles im verzeichniss 4 neue rechte erhält.



ich denke mal du kennst die anleitungen
http://de2.php.net/manual/de/function.chmod.php

chirio
deep
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby adi99 » 22. December 2004 15:41

Hallo,
Es gibt server bei denen CHMOD 777 nicht erlaubt ist! Schau mal obs auf einem andern Server funktioniert...
User avatar
adi99
 
Posts: 115
Joined: 15. January 2004 16:08
Location: Switzerland

Postby tHarry » 22. December 2004 23:16

danke für die Lösungen...

Leider helfen keine..

Mit FTP und PHP kann ich sonst überall setzen.. nur nicht in den Ordnern denn PHP anlegt.

Folgende erfahrungen habe ich nun...

chmod("pfad/", 0777) wird gemacht und rechte werden gesetzt.

sobald ich nun chdir auf den Pfad mache, habe ich keine berechtung dafür..

Code:

# $id = 4
# $cfg[photoalbum][pubDir] = "../public/";

mkdir($cfg['photoalbum']['pubDir'].$id, 0777);
chmod($cfg['photoalbum']['pubDir'].$id."/", 0777);
$ff = fopen($cfg['photoalbum']['pubDir'].$id."/test.txt", "w", 0777);
fwrite($ff, "hello");
fclose($ff);
$curDir = getcwd();
chdir($cfg['photoalbum']['pubDir'].$id); # 1
chdir($curDir); # 2

fehlermeldung bei chdir (#1)... safe mode restriction.. uid unterschiede
wenn ich die Datei in dem angelegten Ordner schreibe, wird dieser angelegt und geschrieben.. allerdings wird sie ohne Rechte angelegt.

glg, harry
Whistler/Sp2, AMD2000+, Xampp 1.5.2,
Whistler/Sp2, P4/2Ghz, Xampp 1.5.2,
Apache und MySQL als Service
---------------
Max OS X 10.4 - iBook G4 - Xampp 0.5
tHarry
 
Posts: 54
Joined: 19. April 2003 17:58

Postby rene.pr » 23. December 2004 07:57

Frag vorwerg wenn immer save_mode fehler kommt liegt es nahe das du keinen zugriff auf den dateipfad hast bist du in deiem verzeichnis also auch in dem wo du deine html seiten hast oder läufst im root herrum schau mal ob du die verzeichnisstruktur richtig hast

lg

rene
rene.pr
 
Posts: 28
Joined: 20. December 2004 11:12

Postby tHarry » 23. December 2004 10:06

hallo.

ich habe mit ftp vollen zugriff auf allem. die mit php angelegten Verzeichnisse kann ich löschen und einsehen. die dateien kann ich löschen nicht runterladen. die verzeichnisse erhalten die rechte 777 nur die dateien die in diesem verzeihnis angelegt werden erhalten keine.

struktur:

vhost - doc-root
|- admin
|- images
|- public # mit ftp angelegt 777
| |- 3 # mit php angelegt 777
| |- 4 # mit php angelegt 777
| |- 5 # mit php angelegt 777
|- includes

kann ich via chdir nicht auf 3/4/5 zugreifen.. aber PHP kann genierierte dateien in diesen Verzeichnisse ablegen - nur erhalten sie keine rechte.
Wenn ich PHP Dateien im Public-Verzeichnis genierieren lasse (ebenso im root-verzeichnis) bekommen diese die rechte (777) und kann mit PHP alles mit denen machen.

wenn ich mit ftp nachsehe, besitzen diese den user apache.
mit ftp hochgeladene dateien den ftp besitzer..

ich hoffe dies war die gewünschte info

glg, harry
Whistler/Sp2, AMD2000+, Xampp 1.5.2,
Whistler/Sp2, P4/2Ghz, Xampp 1.5.2,
Apache und MySQL als Service
---------------
Max OS X 10.4 - iBook G4 - Xampp 0.5
tHarry
 
Posts: 54
Joined: 19. April 2003 17:58

Postby deepsurfer » 23. December 2004 11:27

ist soweit ja auch richtig.

wenn du via FTP als "root" reinkommst so erhalten die Datei und Verzeichnise die CHOWN ( Besitzer und Gruppenzugehörigkeit) rechte von root.


Code: Select all
drwxr-xr-x    2 root     root         4096 23. Dez 11:23 verz


wenn das Script nun ein verzeichniss anlegt bekommt dieser die User-CHOWN rechte

Code: Select all
drwxr-xr-x    2 deep     deep         4096 23. Dez 11:24 verz2


Folglich kann dein Script nicht auf Verzeichnise zugreifen oder etwas ändern das von den User-rechten dem root gehören.

Log dich als Username per FTP ein dann sollte dein Problem in wohlwollen auflösen.

Für eine jetzige Änderung kann du als root mit dem Befehl
Code: Select all
chown deep.deep verz/

die User-rechte umbiegen.

Hilfreich wäre auch "man chown" in der Konsole, da wird dir geholfen :wink:

Ich weiss nicht ob PHP den chown Befehl weiterhin zulässt bei "Safe"
dann könntest du dir im Script sogar die Variablen des User auslesen und als chown $user.$user xyz/ im script einbauen.


chirio
Deep
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby tHarry » 05. January 2005 10:12

Hallo!
Vielen dank für die Lösungen.

Wenn ich den letzten Beitrag von deepsurfer verstanden haben, sollte ich mit PHP via FTP verbinden und dann den Ordner anlegen.

Dies habe ich jetzt so gemacht und das funktioniert wie gewollt.
Lieber wäre mir zwar eine Lösung ohne FTP, trotz SAFE_MODE, aber dies wird es zur Zeit tun.

Code:
$ftpOk = 0;
$ftpId = ftp_connect("server");
$ftpRes = ftp_login($ftpId, "userName", "userPw");
if ((!$ftpId) || (!$ftpRes))
{
$ftpOk = 1;
ftp_mkdir($ftpId, "/html/epa/public/".$id);
ftp_site($ftpId, "CHMOD 0777 /html/epa/public/".$id);
ftp_quit($ftpId);
}

Vielen Dank
Whistler/Sp2, AMD2000+, Xampp 1.5.2,
Whistler/Sp2, P4/2Ghz, Xampp 1.5.2,
Apache und MySQL als Service
---------------
Max OS X 10.4 - iBook G4 - Xampp 0.5
tHarry
 
Posts: 54
Joined: 19. April 2003 17:58


Return to PHP

Who is online

Users browsing this forum: No registered users and 12 guests