php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
chmod und mkdir Problem


 
Kropff
15-08-2003, 11:54 
 
vielleicht bin ich ja zu blöde aber folgendes

ich generiere einen ordner, in dem ich dann xml-dokumente schreibe, dabei will ich auch die rechte entsprechend setzen

$xmlfolder = mkdir ($rootdir.'/xml/'.date("y_m_d"),0755);
$file_mod = chmod ('xml/'.date("y_m_d").'/'.$xml_name, 0755);

sowohl $xmlfolder als auch $file_mod geben TRUE zurück, also sollte jeder lese-und schreibrechte haben, funzt aber net, die rechte hat nur der besitzer (wwwrun), mach ich einen denkfehler?

gruss
peter

 
TobiaZ
15-08-2003, 11:57 
 
haste mal mit 766 oder sogar 777 versucht?

 
schmalle
15-08-2003, 11:57 
 
sowas htte ich auch mal. da lag es an der ftp-konfiguartion des providers.

 
Kropff
15-08-2003, 11:59 
 
haste mal mit 777 versucht?
bringt auch nichts
sowas htte ich auch mal. da lag es an der ftp-konfiguartion des providers.
ne, ist ein rechner im lokalen netz

trotzdem danke
peter

 
TobiaZ
15-08-2003, 12:01 
 
versuch mal vorher mit chdir in das entsprechende verz zu springen.

 
BrainBug
15-08-2003, 12:23 
 
bevor du den File erstellst kannst du die Zugriffsmaske mit

umask(0113);

festlegen. Vielleicht klappt's dann?

 
Kropff
15-08-2003, 13:49 
 
@BrainBug

das mit umask klappt bei den files wunderbar, nur der bei dem verfluchten ordner hat nur der benutzer volle rechte, hab da auch mal
ein umask drübergejagt, aber das bringt garnichts.

apropo wieso (0113)

gruss
peter

 
BrainBug
15-08-2003, 13:57 
 
0113 entspricht read|write für den Besitzer und die Gruppe und nur read für alle anderen. Da es sich ja um eine Maske handelt, sind die Werte die Einschränkung von 777. 0113 entspricht also 664 als chmod()

warum braucht ein Ordner mehr Rechte? Oder welche hat er aktuell? Und welche soll er haben? Aber eigentlich doch egal, wenn du immer mit dem PHP-User darauf zugreifst, oder?

 
Kropff
15-08-2003, 14:15 
 
warum braucht ein Ordner mehr Rechte? Oder welche hat er aktuell? Und welche soll er haben? Aber eigentlich doch egal, wenn du immer mit dem PHP-User darauf zugreifst, oder?

ach das ist eine Intranet-Lösung, um für eine Datenbank XML-Dokumente mit base64-kodierten JPEGs zu erstellen, ich hatte das früher als cronjob laufen lassen, aber jetzt machen die das bei uns über den browser, greifen auf die daten aber über neztwerk mit dem normalen explorer zu und haben nicht die notwendigen rechte.

ich muss also die rechte so setzen, dass alle vollzugriff haben, wie gesagt bei den dateien hats geklappt beim ordner nicht.


gruss
peter

 
BrainBug
15-08-2003, 14:20 
 
wenn alle darauf vollen Zugriff haben sollen, warum machst du dann nicht

$xmlfolder = mkdir ($rootdir.'/xml/'.date("y_m_d"),0777);

? dann können alle read|write|exec, vorausgesetzt, dass umask() steht auf 0. sonst sind wieder Rechte weg.

 
Kropff
15-08-2003, 14:35 
 
ich habs, ich habs!
hab zwischenzeitlich alles richtig gemacht, (umask(0)), nur der verkackte internet explorer hat doch tatsächlich eine fehlerhafte version gecachet.

danke an BrainBug für die hilfe

peter

 
BrainBug
15-08-2003, 14:59 
 
gern geschehen.

 
TobiaZ
15-08-2003, 18:06 
 
von IE kann ich ein Lied singen!

Da versucht man ein Problem zu lösen, was allein der IE noch hat, und alle anderen nicht mehr. sogar mit strg+f5 macht ders nicht besser!

 
vigger
28-10-2003, 23:21 
 
Hallo zusammen!

cih habe ein ähnliches Problem bei meinem Webhoster:
Ich will ein Verzeichnis erstellen lassen, in dem dann anschließend weitere Verzeichnisse und Dateien abgelegt werden sollen.

Wie bereits oben beschrieben ist als owner Apache und als Group nogroup eingetragen.

Jetzt hab' ich das mit der Umask versucht, und laut FTP-Proggie hat das erstellte Verzeichnis auch die Rehchte 777.

Nur wenn nich danach in das Verzeichnis wechseln will, oder darin ein weiteres Verzeichnis anlegen wiull, dann kommt folgende Meldung:

Warning: mkdir() [function.mkdir]: SAFE MODE Restriction in effect. The script whose uid is 18153 is not allowed to access /home/www/htdocs/*****/_vigger/temp/testdir owned by uid 30 in /home/www/htdocs/*****/_vigger/temp/test.php on line 6

kann mir einer einen Tipp geben, wie ich das hinbekomme?

Wäre echt genial, da ich mittlerweile aufgegeben habe!

MfG Vigger

PS: der Code des Test-Skripts sieht momentan so aus:

<?PHP
umask(0);
mkdir("testdir", 0777);
echo "1<br />";
umask(0);
mkdir("testdir/test2", 0777);
echo "2<br />";
?>

 
xc_racer
02-12-2003, 18:06 
 
ich hab das selbe problem wie "vigger" alle meine daten haben einen owner von 1030 nur meine mit mkdir erstellten ordner haben 65000 - schlag mich tot. wie kann ich den owner der ordner auf 1030 setzten?

THX

 
wahsaga
02-12-2003, 18:12 
 
Original geschrieben von xc_racer
wie kann ich den owner der ordner auf 1030 setzten?
http://www.php.net/manual/de/function.chown.php

 
xc_racer
02-12-2003, 18:18 
 
ich dachte der befehl wäre nur für dateien. wie muss ich das mit einem verzeichnis machen mit / am ende oder ohne

 
schmalle
02-12-2003, 18:35 
 
Original geschrieben von xc_racer
wie muss ich das mit einem verzeichnis machen mit / am ende oder ohne ausprobieren ist dir ein begriff? :D

 
vigger
02-12-2003, 19:30 
 
Hallo zusammen...

Also ich hab' das Problem jetzt gelöst.
Besser gesagt umgangen.

Ursache:
Im SaveMode kann ein Skript nicht auf ein Verzeichnis zugreifen, welches von wwwrun erstellt wurde, da dieses Verzeichnis als Owner den wwwrun-Prozess hat...
Siehe http://bugs.php.net/bug.php?id=24604

Lösung:
Eine FTP-Verbingung aufbauen vom Server zum Server, klingt bescheuert, tut aber) und mit ftp_mkdir() ein verzeichnis anlegen...

Dieses hat dann den Richtigen Owner und man kann auch sinnvoll damit arbeiten.
Beispiel:
Siehe http://de3.php.net/manual/de/function.mkdir.php

MfG Vigger

 
psykadelik
28-11-2004, 17:29 
 
Original geschrieben von vigger
Hallo zusammen...

Also ich hab' das Problem jetzt gelöst.
Besser gesagt umgangen.

Ursache:
Im SaveMode kann ein Skript nicht auf ein Verzeichnis zugreifen, welches von wwwrun erstellt wurde, da dieses Verzeichnis als Owner den wwwrun-Prozess hat...
Siehe http://bugs.php.net/bug.php?id=24604

Lösung:
Eine FTP-Verbingung aufbauen vom Server zum Server, klingt bescheuert, tut aber) und mit ftp_mkdir() ein verzeichnis anlegen...

Dieses hat dann den Richtigen Owner und man kann auch sinnvoll damit arbeiten.
Beispiel:
Siehe http://de3.php.net/manual/de/function.mkdir.php

MfG Vigger



harrrrr ....

sorry das diese antwort jetzt mal gepusht wird, aber sie ist perfekt und löst genau mein problem mit dem safemode :-)

danke vigger =)


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:15 Uhr.