Datei erzeugen und Dateirechte

visiondpc

Erfahrenes Mitglied
Hallo, ich habe ein riesenProblem auf meinem Server. Ich habe ein Script, welches mittels PHP automatisch Thumbnails von hochgeladenen Grafiken erzeugt. Klappt auch alles problemlos allerdings lassen sich die Bilder hinterher nichtmehr vom Server löschen. Wenn ich die Rechte der Bilder ändern ( momentan 600) will wird mir auch angezeigt, das ich nicht die dafür benötigte Berechtigung hätte. Besteht die Möglichkeit, soetwas schon beim Erzeugen der Thumbnails auszuschließen?
 
Danke für den Tipp. Ich habe es jetzt so probiert:
PHP:
ImageJPEG($grafik2, "thumbs/".$datei,100);
chmod("thumbs/".$datei, 0777);

Mit dem Ergebnis, dass die Thumbs mit den Rechten 644 erzeugt werden und trotzdem nicht von mir gelöscht werden können.
Auf dem Server ist als besitzer der Dateien auch wwwrun eingetragen und nicht wie üblich mein Benutzername.
 
PHP erzeugt anscheinend mit den Rechten des Webservers die Dateien und dein FTP Account hat keine Rechte darauf, selbst wenn der chmod geändert wird.

Versuch es einmal mit [phpf]chown[/phpf]. Versuch ihn damit auf den Owner zu ändern, die halt die normalen Dateien haben, wenn du sie hochlädst.
 
Das bringt mir leider auch nur eine Fehlermeldung, dass ich nicht die Berechtigung habe an dieser Datei etwas zu ändern. Der Serverprovider stellt sich leider auch quer und behauptet das wäre ganz normal so.
 
isses glaub ich auch, weil PHP sowie auch Apache, MySQL etc pp alled über den Nutzer wwwrun läuft. Speicherst du also mit PHP ein Thumbnail, schreibst nicht du, sondern der Nutzer wwwrun. Das kannste leider weder manipulieren noch umgehen, vor allem dann nicht wenn Savemode an ist... zumindest mein wissensstand ;)

du kannst aber mit PHP die datei löschen... erstell dir "einfach" ein script, dass dir den Ordner ausliest, bestenfalls mit einer checkbox vor/hinter dem Dateinamen (name der Checkboxen z.B. name="delfile[]", damit ein Array erstellt wird) und nem submit button. Im weiteren Schritt wertest du das Array aus und kannst mit unlink($file); die datei(en) löschen...

Grüße, Patrick
 
Danke für den Tipp. So ähnlich hatte ich es schon probiert. Nur hatte ich direkt den Namen der Grafik angegeben ( erstmal testen bevor ich ein längeres Script schreibe das alle löscht ;) )
Aber auch da wurde mir angezeigt, das ich nicht die Berechtigung hätte die Datei zu löschen. Das Seltsame ist ja, wenn ich Dateien hochlade lassen die sich ohne Probs via FTP löschen. Gleiches gilt für Verzeichnisse oder Textdateien die ich mittels PHP erstelle ( beides hinterher als Besitzer wwwrun ). Es sind nur die erzeugten Grafiken die ich nicht mehr vom Server löschen kann. Ich sehe jetzt keinen Unterschied ob mein PHP-Script eine Grafik oder eine andere Datei erzeugt. Entweder sollte ich beides löschen können oder keines. Aber das nur die erzeugten Grafiken nicht mehr zu löschen sind ist schon seltsam.
 
hm, in dem fall iss das allerdings recht merkwürdig und iss meiner Meinung nach auch nich normal, aber wer weiss... Nutzt du ImageMagic zum Thumb-erstellen? wenn ja könnte es vielleicht ja daran liegen, das wiederum ist ja n drittprogramm (neben webserver, php), wer weiss welche regeln da wieder gelten?

Hast du versucht direkt beim speichern des Thumbs chown, chgrp UND chmod zu setzen? btw, mir fällt da grad auf, chgrp wurd hier noch nich genannt, eventuell liegts daran, dass die Usergruppe falsch ist (Linux unterscheidet Dateiberechtigungen schliesslich auch per User-Gruppe)...

falls dadd alles nix hilft, würd ich vorschlagen sollteste vor dem Löschen der Datei versuchen die Datei umzubenennen in dateiname.txt und diese dann zu löschen... bei windumm muss des klappen, weil dem die Headerdaten vollkommen schnurz sind, ich weiss nicht wie das bei Linux ist...
 
Das Script, das die Thumbnails erzeugt habe ich selber geschrieben.
Hier mal ein Ausschnitt der die jpgs erzeugt.
PHP:
elseif($daten[2]==2)
{
  $grafik1 = ImageCreateFromJPEG($datei);
  $grafik2 = ImageCreateTrueColor($tnbreite, $tnhoehe);
  ImageCopyResized($grafik2, $grafik1, 0, 0, 0, 0, $tnbreite, $tnhoehe, $breite, $hoehe);
  ImageJPEG($grafik2, "thumbs/".$datei,100);
}
Ich habe bereits versucht chown, und chmod direkt nach dem erzeugen anzuwenden. Alles mit der Meldung, das ich keine Berechtigung diese Dateien zu ändern. chgrp funktioniert auch nicht, weil ich ja nicht als Superuser angemeldet bin.
 
Zuletzt bearbeitet:
achso, grr dadd iss ja merkwürdig... tjo, bleibt (mir) nur noch die idee mit dem datei-umbenennen in eine txt-datei, um sie zu löschen... musste mal probiern^^
 
Zurück