Chmod 0777 oder 4777 ?

Ich habe php- Scripte bei meinem Provider
die Ordner und Dateien schreiben
und dann bzw. dabei die Rechte auf 777 setzen.
Hatte ich so gemacht:
mkdir( $temp , 0777 )

Das Resultat war das ich nun da nicht mehr ran komme an die Dateien auch nicht mit SSH:

ls -l
drwxr-xr-x 2 wwwrun nogroup 4096 Jul 20 23:11 00017961865c4f766fdbb3cd8fe0bfb0

rm -rf *
rm: Entfernen (unlink) von »00017961865c4f766fdbb3cd8fe0bfb0/show.php« nicht möglich: keine Berechtigung

Nun habe ich
http://www.linuxfibel.de/access.htm
studiert.

Jetzt habe ich in PHP die Befehle etwas gändert:
mkdir( $temp , 4777 ) bzw. chmod ( $session , 4777 ) .

Ist das eine gute Lösung ?

Ich will nur, das die Dateien per PHP, FTP und SSH wieder löschbat sind.

Und wie kann ich nun die bisher entstandenen Dateien wieder löschen ?

LG Sebastian

Jetzt habe ich in PHP die Befehle etwas gändert:
mkdir( $temp , 4777 ) bzw. chmod ( $session , 4777 ) .

mit der „4“ setzt du dann die su-ID, so dass Du mit jeder User-ID an die Daten herankommst. Ist prinzipiell schon eine Lösung, weicht allerdings die Sicherheit im System etwas auf, weil dann wirklich jeder User an die Daten herankommt.

Das spielt in Deinem Beispiel jedoch keine Rolle, denn es kann ja theoretisch sowieso jeder an Deine Daten heran, der einen Zugriff auf PHP-Skripte auf dem gleichen Webserver hat, da PHP bei Dir als „wwwrun“ läuft.

Ich selbst mache es immer so, dass ich solche Dateien auch immer mit einem eigenen PHP-Skript lösche. Damit gibt es dann immer einen Verantwortlichen, der die Daten erzeugt und gleichzeitig wieder entfernt. Das ist eigentlich auch der Sinn der Rechtevergabe unter Unix/Linux.

Marian

Danke. Habe aber kein PHP- Tool zum löschen.
Weis jemand vielleicht ein einfach zu konfigurierendes PHP- Tool mit dem man Ordner etc. löschen kann ?

Danke :smile:
Sebastian

Orfner 4777 geschützt wenn er in 0777 drin ist ?
Wie ist das mit verschachtelten Ordnern ?
Der äußere könnte doch den inneren schützen oder ?
Ich meine so könnte ein anderer user erst gar nicht so weit vordringen.
Wäre das eine Möglichkeit ?

LG seb

Weis jemand vielleicht ein einfach zu konfigurierendes PHP-
Tool mit dem man Ordner etc. löschen kann ?

unlink() und rmdir()

http://de.php.net/manual/en/function.unlink.php
http://de.php.net/manual/en/function.rmdir.php

der Rest ist Nachdenken und etwas Fleißarbeit um sich einen kleinen 12-Zeiler in PHP zu schreiben.

Marian

Wie ist das mit verschachtelten Ordnern ?
Der äußere könnte doch den inneren schützen oder ?

Das klappt bedingt, wenn Du z.B. die Execute-Rechte des Ordners einschaltest, die Read-Rechte aber abschaltest. Dann kann ein PHP-Script keine Auflistung der enthaltenen Dateien erhalten (Deine Eigenen aber auch nicht).

Marian

das hilft mir weiter :smile: so mach ichs :smile:

das hilft mir weiter :smile: so mach ichs :smile:

) seb

Ich habe php- Scripte bei meinem Provider
die Ordner und Dateien schreiben
und dann bzw. dabei die Rechte auf 777 setzen.
Hatte ich so gemacht:
mkdir( $temp , 0777 )

Das Resultat war das ich nun da nicht mehr ran komme an die
Dateien auch nicht mit SSH:

ls -l
drwxr-xr-x 2 wwwrun nogroup 4096 Jul 20 23:11
00017961865c4f766fdbb3cd8fe0bfb0

Das ist auch 0755 und nicht 0777.
umask(0000) vor dem mkdir sollte helfen. Siehe PHP-Doku:
Der Mode wird ebenfalls mit der aktuellen umask modifiziert, welchen Sie mittels umask() ändern können.

rm -rf *
rm: Entfernen (unlink) von
»00017961865c4f766fdbb3cd8fe0bfb0/show.php« nicht möglich:
keine Berechtigung

Logisch, du bist nicht wwwrun und hast keine Schreibrechte.
Entweder per Script löschen, oder eben die Berechtigungen richtig setzen.

Jetzt habe ich in PHP die Befehle etwas gändert:
mkdir( $temp , 4777 ) bzw. chmod ( $session , 4777 ) .

Ist das eine gute Lösung ?

Nein. SUID Bits sind für was ganz anders gut. Du willst umask verwenden…

Alexander