PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: mkdir & chmod



mlistcool
06.04.2005, 20:36
kleines problemchen:
ich erstell über ein formular einen ordner:
mkdir ("../dat/ordner", 0777);
der ordner wird erstellt aber bekommt seltsamerweise chmod 755 und nicht 777, aber was ich noch seltsamer finde ist, dass ich dem (durch das Formular erstellen) Ordner nichtmal mehr über das FTP Prog CHMOD Rechte verteilen kann o_O
(Bei anderen Ordnern im dat Verzeichnis kann ich selbstverständlich über das FTP Programm chmod rechte verteilen)

woran liegt das?

Jesus_666
06.04.2005, 21:44
1.) Der Server läuft unter Linux/BSD/OS X, ja? Unter Windows ist chmod() relativ sinnlos, da Windows keine POSIX-Dateizugriffsrechte kennt. Dort kannst du an sich nur 0600 und 0400 verwenden, alles andere entspricht einem von den beiden.

2.) Kannst du den Ordner von der Shell aus chmodden? Kann der User, als der PHP läuft, den Ordner chmodden? Vielleicht gehört der Ordner zur falschen Benutzergruppe.

3.) Ist safe_mode aus? Wenn in der php.ini safe_mode aktiviert ist kannst du Direktzugriff auf das Dateisystem vergessen und mußt über die FTP-Funktionen gehen.

mlistcool
06.04.2005, 22:13
ich weiss nicht, was fürn server das ist, da ich nur webspace hab.

Dass ich über php keinen ordner mit chmod 777 erstellen kann wegen irendwelchen Sicherheitseinstellungen kann ich mir ja noch vorstellen. Aber wieso kann ich über ein FTP Programm diesem Ordner wie alle anderen Ordner keine anderen chmod rechte geben?
was ist an diesem ordner anders?

wenn ich versuche einen über php erstellten ordner chmod zu verändern kommt übrigens der fehler:
"550 Ordner: Operation not permitted"

Oh beim schreiben dieser nachricht fällt mir ein unterschied auf:
bei den ordner chmod einstellungen steht bei allen normalen ordnern der ftp benutzername, jedoch steht bei den über php erstellten order der benutzernamen "apache" der gruppe "apache". das wirds wohl sein. kann ich das irgendwie umgehen oder ist es eine der sicherheitseinstellungen, die du genannt hast, die ich eh net ändern kann weil mir der server nicht gehört?

Jesus_666
06.04.2005, 23:26
Das ist es. Man darf nur an Dateien und Ordnern rummachen, die einer Benutzergruppe gehören, in der man ist (es sei denn, man ist der Serveradministrator).

Wenn du die Ordner, die "Apache" gehören, mit deinem FTP-Client bearbeiten kannst (also chmodden und so) ist die Lösung einfach: Erstelle Ordner nur per PHP - zumindest dann, wenn PHP mit chmod() drauf Zugriff haben soll.
Wenn das nicht der Fall ist funktioniert es genauso, nur wird die Verwaltung nerviger, weil du nicht mal eben per FTP-Client an der Ordnerstruktur rumbasteln kannst. Andererseits muß man das ja eher selten, also sollte sich der Aufwand in Grenzen halten.


BTW, dieser Thread hätte ins Webentwicklerforum gehört. Nur so als Hinweis; den jetzt zu verschieben macht nicht mehr fürchterlich viel Sinn.
Ich hätte den vorhin verschoben, aber das ist mir aufgrund von Inkomp-- äh, kurzzeitiger Abgelenktheit entgangen.

mlistcool
07.04.2005, 14:47
ok vielen danke.
ich habs jetzt geschafft mit ftp_mkdir() und ftp_chmod()