CHMOD Berechtigung

mcphilli

Erfahrenes Mitglied
Hallo,
ich habe vor eine Bildergalerie zu programmieren, dazu gehört natürlich das Anlegen von Ordnern. Ich bekomme die Ordner einfach nicht auf den CHMOD 777 um Bilder per Script hinein zu laden. Die Ordner erstell ich wie folgt:

PHP:
if(mkdir("testordner", 0777)) echo 'Erflog...';

so der Odner ist erstellt aber mit den Rechten 755. Braucht man eine besondere Berechtigung oder Einstellung?

MfG
MCPhilli
 
Es kann sein, dass deine PHP Installation auch nur die Rechte 755 hat, dann kann es auch nich mehr Rechte vergeben.
 
Zuletzt bearbeitet von einem Moderator:
Umgehen kannst Du das aber auch.

Bei solchen Problemen hat es sich immer bewährt http://www.php.net oder einen Mirror aufzusuchen. Hier ein Zitat von einem User:

Quelle: PHP.NET

You might notice that when you create a new directory using this code:

mkdir($dir, 0777);

The created folder actually has permissions of 0755, instead of the specified
0777. Why is this you ask? Because of umask(): http://www.php.net/umask

The default value of umask, at least on my setup, is 18. Which is 22 octal, or
0022. This means that when you use mkdir() to CHMOD the created folder to 0777,
PHP takes 0777 and substracts the current value of umask, in our case 0022, so
the result is 0755 - which is not what you wanted, probably.

The "fix" for this is simple, include this line:

$old_umask = umask(0);

Right before creating a folder with mkdir() to have the actual value you put be
used as the CHMOD. If you would like to return umask to its original value when
you're done, use this:

umask($old_umask);

Ich denke, das löst Dein Problem :)
Und das nächste mal: Schau vorher in die Dokumentation ;)
 
Zudem wozu benötigst du Ausführen + Lesen + Schreiben für alle auf dem Ordner.
Das würde ich als problematisch bezeichnen.
755 währe passender Zugriffsrecht.
Der Apache läuft als eigener user, und Bilder die in dem Ordner gespeichert werden werden ebenso unter dem Apache user gespeichert.
Das heisst ein Script hat mit 755 Zugriff zum Speichern und lesen. Wenn du aber dein Ordner für alle freigibst tust du dir kein Gefallen.

UNIX hat ein nettes, relativ einfach zu verstehendes Rechte System, bitte nutzen und nicht übergehen.

grüsse
 
Zurück