fehlende Schreibrechte auf dem Webspace
Jan K.
- php
Hallo zusammen,
da ich momentan an einem PHP-Script arbeite, welches seine Daten in CSV-Dateien speichern soll, musse das Script Dateisystemrechte auf dem Webspace haben.
Um mein Problem zu verdeutlichen, folgendes Beispielscript:
<?php
if(isset($_POST["filename"]) AND !(empty($_POST["filename"])))
{
$file=$_POST["filename"];
$handle=fopen("$file","w+");
fclose($handle);
}
?>
<form action="mkfile.php" method="POST">
<input type="text" size="10" name="filename">
<input type="submit" value="Datei erstellen">
</form>
Die gwünschte Datei kann aufgrund fehlender Berechtigung nicht erstellt werden und folgende Fehlermeldungen tauchen auf:
Warning: fopen(popo.txt): failed to open stream: Permission denied in /var/www/html/web88/html/clanvid/jan/mkfile.php on line 6
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/web88/html/clanvid/jan/mkfile.php on line 7
Ich nehme stark an, das in der Konfiguration des Webservers Dateisystemrechte deaktiviert wurden. Da ich mich wenig mit der Konfiguration des Apache auskenne, bzw. der httpd.conf, währe es nett wenn ihr mir weiterhelfen könntet.
Gruß,
Jan
p.s.(hat nix mit chmod zutun, hab schonmal zu Testzwecken 777 vergeben)
Hi!
Versuchs mal mit chmod(); , damit legst du die Rechte einer Datei fest:
[/code]
if(isset($_POST["filename"]) AND !(empty($_POST["filename"])))
{
$file=$_POST["filename"];
chmod ($file, 0644);
$handle=fopen("$file","w+");
fclose($handle);
}
Hier nochmal alles zum nachlesen:
http://de2.php.net/manual/de/function.chmod.php
mfg
Geht nicht, da ich eine Datei die noch nicht exestiert mit chmod nicht bearbeiten kann.
Es liegt definitiv nicht an chmod, es muss eine Einstellung in der Apache config sein, die einem script verweigert Dateien anzulegen.
Ich wär dankbar dafür, wenn ein apache spezi mir wenigstens einige Vermutungen darlegen könnte.
Hi,
Es liegt definitiv nicht an chmod, es muss eine Einstellung in der Apache config sein, die einem script verweigert Dateien anzulegen.
Welche Rechte sind für das Verzeichnis gesetzt, in dem die Datei angelegt werden soll?
cu,
Andreas
Also um nochmal etwas weiter auszuholen, den Webspace den ich benutze wird von einem Freund aus meinem Clan bereitgstellt.
Per Clan-ftp hat jedes Mitglied die möglichkeit seinen ftp Ordner auch im Web verfügbarzumachen, inlusive PHP.
Das ist der absolute Pfad:
/var/www/html/web88/html/clanvid/jan/mkfile.php
Der ordner Jan ist meiner, ab dort kann ich machen was ich will.
Zu Versuchszwecken hat der Ordner "Jan" chmod 777 bekommen, sowie die mkfile.php.
Da derjenige der den Webspace bereitstellt selten zu erreichen ist und ggf. änderungen in dder Apache config vorzunehmen, probiere ich das Problem schonmal alleine zu lösen.
Ich kenne mich mit chmod nicht aus, da ich ein windows dummie bin, aber ich glaube nicht das es daran liegt. Die einzige möglichkeit die bezüglich chmod bleibt, ist das ein übergeordneter ordner wie "clanvid" seine Zugriffseigenschaften an untergeordete Ordner weitervererbt. Ich hab zwar keine Ahnung von chmod, aber das würde ich anzweifeln.
Hallo Jan,
und was ist jetzt konkret deine Frage?
Viele Grüße
Thorsten
Hallo Thorsten,
und was ist jetzt konkret deine Frage?
Auch wenn es nicht als Frage formuliert war, ist es doch offensichtlich, dass es Jan darum ging, eine Lösung für sein Problem zu finden.
Gruß,
Johannes
Hallo Johannes.
Auch wenn es nicht als Frage formuliert war, ist es doch offensichtlich, dass es Jan darum ging, eine Lösung für sein Problem zu finden.
Geht es uns nicht allen so?
Nein, ernsthaft: Will er einen Alternativen Programmierweg finden, sucht er einen Webspace-Anbieter bei dem das Skript läuft, möchte er seinen Apache konfigurieren, will er einfach nur eine Bestätigung für seine Feststellungen...?
IMHO ist das nicht eindeutig.
Grüße
Thorsten
Ich möchte gerne das mein Script eine Datei auf dem Webspace anlegen kann.
Hallo Thorsten,
Nein, ernsthaft: Will er einen Alternativen Programmierweg finden, sucht er einen Webspace-Anbieter bei dem das Skript läuft, möchte er seinen Apache konfigurieren, will er einfach nur eine Bestätigung für seine Feststellungen...?
IMHO ist das nicht eindeutig.
Anscheinend liegt das Verständnisproblem trotzdem bei dir, da Thomas Mudguard und ich verstanden haben, dass Jan nach einem Weg sucht, die Berechtigung zum Erstellen einer Datei richtig zu konfigurieren.
Schöne Grüße,
Johannes
Hi,
if(isset($_POST["filename"]) AND !(empty($_POST["filename"])))
Was genau steht in $_POST["filename"] drin?
{
$file=$_POST["filename"];
$handle=fopen("$file","w+");
fclose($handle);
}
Mal ganz abgesehen davon, daß es momentan nicht funktioniert:
Dir ist das Risiko bewußt?
Stell Dir vor, jemand gibt z.B. ".htaccess" als Filename an.
Oder "/etc/passwd". Oder ...
cu,
Andreas
Angenommen der Ordner hat chmod 777. Indiesem liegt die htaccess und die htpswd Datei. Jemand probiert vom web aus in den Ordner zu gelangen.
Kommt dann nicht erst die Berechtigungsabfrage?
Ich bin mir des Sicherheitsproblems bewusst. Da das aber mehr ein Spielplatz ist um meine Scripts auszuprobieren und wenn das Script dann läuft, wenn ich das Problem gelöst habe, werde ich die rechte mit Sicherheit verringern.
Hello,
Angenommen der Ordner hat chmod 777. Indiesem liegt die htaccess und die htpswd Datei. Jemand probiert vom web aus in den Ordner zu gelangen.
Kommt dann nicht erst die Berechtigungsabfrage?
Wenn man über HTTP auf eine Ressource in diesem Pfad zugreift, dann wird nach der Berechtigung geschaut. Wenn man aber z.B. auf das bemängelte schädliche Script im ungeschützen Nachbarordner zugreift, dann kan dieses Script über das Filesystem, also nicht über HTTP, auf die Files im Nachbarverzeichnis (mit 777) zugreifen. Hier wird keine weitere Berechtigung über htaccess geprüft.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom