Hallo Joerg, Michael, und die anderen,
Die DirectoryList zeigt in der Tat Merwürdiges:
drwxr-xr-x 2 65534 65534 1024 Jul 21 14:22 karl
wobei karl das neue Verzeichnis ist :-)
Siehste wohl, mit guten Diagnosedaten kommen wir weiter.
Stimmt!!
"Dein" CGI-Skript wird nun mal nicht von *Dir* ausgeführt, sondern vom Webserver. Wenn es also ein Verzeichnis anlegt, dann gehört dieses Verzeichnis derjenigen Benutzerkennung, unter welcher der Webserver entweder selber läuft oder seine CGI-Skript startet (das kann eine noch unterprivilegiertere Kennung sein als die des Webservers selbst).
Und wenn dann noch das "permissions" beim Erstellen des Directories nicht so zieht, wie es hier bei dem Kommando steht, dann ist ja alles klar. Ich hab dieses Zitat bewusst nochmal aus dem Threadbeginn zurueckgeholt.
Statt
...>$permissions = 0777;
...>mkdir("$dirname",$permissions);
solltest Du mal versuchen:
$permissions = 0777;
mkdir("$dirname");
und dann erstmal ein:
chmod($permissions,"$dirname");
Und Du hast natürlich kein Recht, auf ein Objekt dieser Kennung zuzugreifen, falls Dir das Skript dieses Recht nicht erteilt hat. Das Skript muß also auch für das angelegte Verzeichnis das Schreibrecht erteilen, denn wenn Du eine Datei umbenennst, dann veränderst Du ja nicht den Inhalt der Datei, sondern den Inhalt des übergeordneten Verzeichnisses.
Wenn Du es natuerlich auf diesem Weg schaffst ein kollektives Schreibrecht auf das File zu erstellen, dann kannst Du und jeder andere User die Datei auch beschreiben.
Sicherer waere aber ein anderer Weg: Du laesst den Webserver wie gehabt alles erstellen, und laesst ihn dann, falls die Moeglichkeit besteht den ganzen Mist an Dich verkaufen mittels chown und setzt die Rechte auf -rwxr-xr-x, damit nicht jeder Cracker in Deinen Dateien rumarbeiten kann und Dir haessliche Ueberraschungen ala "Diese Seite wurde von xxx gecrasht!" bereiten kann.
Bis danndann
Michael N.