PHP chmod()

Hallo zusammen.

Ich habe da eine Frage zur Funktion chmod().

Und zwar folgendes:
Ich hab ca. 40 Ordner in diesen Ordnern sind x Bilder. Diese x Bilder möchte ich mit einem Wasserzeichen versehen. Funktioniert, klappt, jedoch nur, wenn ich die Bilder mittels eines Webtools auf die Besitzrechte des Users wwwrun (php) vergebe. Dieses Webtool wird von meinem Provider zur Verfügung stelle.
Ich möchte aber das chmod() direkt in Php ausführen. Es kommt jedoch immer die Fehlermeldung permission denied. Nun zu meiner Frage, wie kann ich das chmod() direkt in PHP ausführen??
Also, bevor ich das Bild mit einem Wasserzeichen versehe, auf chmod($datei,0777) setze und nach erfolgreichem Erzeugen, wie auf die Ursprungsrechte setze… > ich denke chmod($datei,0644).

Wie geht das?

Bitte um Hilfe und vielen dank im vorraus.

Grüsse, Sebastian

Hi Sebastian,

Funktioniert, klappt, jedoch nur, wenn ich die Bilder mittels
eines Webtools auf die Besitzrechte des Users wwwrun (php)
vergebe. […]
Ich möchte aber das chmod() direkt in Php ausführen. Es kommt
jedoch immer die Fehlermeldung permission denied. Nun zu
meiner Frage, wie kann ich das chmod() direkt in PHP
ausführen??

Wenn der wwwrun-User, unter dem die Skripts laufen, keine Rechte zum Ändern der Zugriffsrechte hat, kannst Du das CHMOD nur über den FTP-User machen. Siehe die PHP-Funktion ftp_site: http://www.php.net/manual/de/function.ftp-site.php
Für die Performance wäre es wohl besser, Du änderst die Zugriffsrechte nicht pro Datei, sondern temporär einfach die des Ordners.

Ciao
Rudy

Hallo Rudy.

Wenn der wwwrun-User, unter dem die Skripts laufen, keine
Rechte zum Ändern der Zugriffsrechte hat, kannst Du das CHMOD
nur über den FTP-User machen. Siehe die PHP-Funktion ftp_site:
http://www.php.net/manual/de/function.ftp-site.php
Für die Performance wäre es wohl besser, Du änderst die
Zugriffsrechte nicht pro Datei, sondern temporär einfach die
des Ordners.

Anscheinend kann ich die Zugriffsrechte über das PHP-Script nicht ändern, sprich mit chmod(). Mit deiner Variante ftp_site() funktionierts. Ich gebe den Dateien die Vollzugriffsrechte und nun klappts.

$conn = ftp\_connect('ftp.example.com');
if (!$conn) die('Unable to connect to ftp.example.com');

if (!ftp\_login($conn, 'user', 'passwd')) die('Error logging into ftp.example.com');

if (ftp\_site($conn,"chmod 0777 $fullpathTmp")) {
 } else {
 die('FTP-Command failed.');
 }

danke dir vielmals.

Grüße,
Sebastian