File Upload ohne 777er Rechte?
Jonas
- php
Hallo Forum,
wie schaffe ich einen File Upload ohne 777er Rechte auf den Ordner zu setzen?
Derjenige der dass beantworten kann - weiss sicherlich auch wie ich Dateien erstellen, editieren etc kann und das ohne sie auf 777 zu setzen.
Wie ich Dateien uploade, erstelle, verändere etc. weiss ich - jedoch mache ich doch irgendetwas falsch, wenn ich sie unter 777 laufen lasse...
Vielen Dank im vorraus für die Antwort,
Jonas
Hi,
wie schaffe ich einen File Upload ohne 777er Rechte auf den Ordner zu setzen?
indem du 776-Rechte setzt.
E7
Hello,
wie schaffe ich einen File Upload ohne 777er Rechte auf den Ordner zu setzen?
indem du 776-Rechte setzt.
Das sollte jetzt aber nur ein Witz sein, oder?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
wie schaffe ich einen File Upload ohne 777er Rechte auf den Ordner zu setzen?
indem du 776-Rechte setzt.
Das sollte jetzt aber nur ein Witz sein, oder?
Natürlich war das ein Witz; wenngleich auch eine dämliche Antwort auf eine mehr oder weniger dämliche Frage... Wenn er keine 777-Rechte sezten will, muss er ja was anderes setzen - und PHP hat im Normalfall nur schreibende Zugriffsrechte auf Dateien, die entsprechend hoch ausfallen...
E7
Hello,
Natürlich war das ein Witz; wenngleich auch eine dämliche Antwort auf eine mehr oder weniger dämliche Frage... Wenn er keine 777-Rechte sezten will, muss er ja was anderes setzen - und PHP hat im Normalfall nur schreibende Zugriffsrechte auf Dateien, die entsprechend hoch ausfallen...
PHP hat gar keine Zugriffsrechte, sondern der User, der PHP ausführen lässt. Das ist entweder der Konsolen-User oder der Apache oder der IIS oder welcher Webserver auch immer eingestzt wird.
Und Schreibrechte hat der immer, wenn das (w)-Recht eben gesetzt ist.
Wenn er Eigentümer des zu verändernden Objektes ist, dann reicht -w- --- ---
Wenn er in der Grupp Mitglied ist, die im Ojekt angegeben ist --- -w- ---
Und wenn er gar nix davon ist, dann muss eben --- --- -w-
eingestellt sein. Mehr geht immer, weniger nicht.
Und wenn der Safe_Mode eingeschaltet ist ohne gid, dann muss der Webserver zusätzlich auch Eigentümer des Verzeichnisses sein, in dem das File liegt, das er verändern will, oder Eigentümer des Files sein, das er verändern will. Und wenn safe_mode_gid zusätzlich aktiv ist, dann tut er's, wenn er Eigentümer ist oder wenn er in der Gruppe Mitglied ist, die im Pbjekt genannt ist. Die "normalen" rechte müssen natürlich trotzdem passen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
wie schaffe ich einen File Upload ohne 777er Rechte auf den Ordner zu setzen?
indem Du das Verzeichnis, in dem die Dateien abgespeichert werden sollen an den Webserver verschenkst (chown) und dann z.B. '0300' als Rechte einstellst. Dann darf er nicht mehr das Verzeichnis browsen, darf dort aber Dateien anlegen (lesen und schreiben).
Derjenige der dass beantworten kann - weiss sicherlich auch wie ich Dateien erstellen, editieren etc kann und das ohne sie auf 777 zu setzen.
Das kommt darauf an, wer der offizielle User ist.
Wenn Du das bist, der mit vi oder sonst einem Editor die Dateien bearbeiten will, dann reicht das auch, wenn Du für das Verzeichnis das (-wx) Recht hast und für die Datei selber dann später (rw-)
Aber wenn Du nicht mehr Rahmenbedingungen verrätst, kann ich Dir nicht mehr sinnvolles erzählen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
indem Du das Verzeichnis, in dem die Dateien abgespeichert werden sollen an den Webserver verschenkst (chown) und dann z.B. '0300' als Rechte einstellst. Dann darf er nicht mehr das Verzeichnis browsen, darf dort aber Dateien anlegen (lesen und schreiben).
...das hört sich interressant an - muss ich mal morgen ausprobieren :)
- Hast Du Rootzugriff zum Server?
nein
- Hast Du eine Shell (ggf. über ssh)?
ja
- Wie heißt der User des Webservers?
Hm - gute Frage - wie finde ich das heraus?
- Wie heißt Du als User?
b0100027
- In welchen Gruppen bist Du als User?
- In welchen Gruppen ist der Webserver?
Ebenfalls gute Fragen - wie finde ich das heraus?
Die letzteren Antworten beziehen sich auf ein Projekt bei dem ich nur Nutzerrechte auf einem 'Shared Server' (Linux/Apache/Php) habe und ein bischen mit Dateien arbeiten will (also bearbeiten von vorhandenen Dateien als auch neu erstellen) - mich würden aber auch alle anderen Möglichkeiten interressieren, da ich lokal einen LAMP laufen habe...
Danke für alle Tips!
Grüsse
Hello,
indem Du das Verzeichnis, in dem die Dateien abgespeichert werden sollen an den Webserver verschenkst (chown) und dann z.B. '0300' als Rechte einstellst. Dann darf er nicht mehr das Verzeichnis browsen, darf dort aber Dateien anlegen (lesen und schreiben).
...das hört sich interressant an - muss ich mal morgen ausprobieren :)
- Hast Du Rootzugriff zum Server?
nein
Dann darfst Du (wahrscheinlich) das chown-Kommando nicht benutzen. Das sit Root vorbehalten
- Hast Du eine Shell (ggf. über ssh)?
ja
Das ist gut.
- Wie heißt der User des Webservers?
Hm - gute Frage - wie finde ich das heraus?
Das einfachste wird sein, einfach mit "ls -la" nachzuschauen, wer als Owner eingetragen worden ist, wenn der Webserver (also mit php touch("Dateiname") z.B.) ein File angelegt wurde.
- Wie heißt Du als User?
b0100027
- In welchen Gruppen bist Du als User?
- In welchen Gruppen ist der Webserver?
Ebenfalls gute Fragen - wie finde ich das heraus?
am Prompt in Deiner Shell einfach "groups webservername" oder "groups b0100027" eingeben und schauen, was das System Dir antwortet.
Die letzteren Antworten beziehen sich auf ein Projekt bei dem ich nur Nutzerrechte auf einem 'Shared Server' (Linux/Apache/Php) habe und ein bischen mit Dateien arbeiten will (also bearbeiten von vorhandenen Dateien als auch neu erstellen) - mich würden aber auch alle anderen Möglichkeiten interressieren, da ich lokal einen LAMP laufen habe...
Gut. dann kannst Du ja erstmal testen, was so passiert.
Und merk Dir die Fehlermeldungen gut, falls welche kommen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo nochmal,
vielen Dank für deine Erklärungen - ich denke soweit habe ich das verstanden, jedoch stellt sich mir die Frage ob man PhP für den ernsthaften Ensatz der Dateibearbeitung auf einem Shared Server verwenden kann.
Soweit ich das verstanden habe besteht ja nur die Möglichkeit die Ordner/Dateien an den Webserver zu verschenken, was mit meinen Nutzerrechten aber nicht vereinbar ist - wenn ich diese auf 777 setze habe ich das Problem das sie jeder verändern kann der Ssl Zugriff auf den Server hat.
Gibt es denn in meinem Fall keine _gute_ Lösung oder ist PhP einfach ungeeignet dafür (wenn ich das Ganze über Cgi/C++ löse läuft es ohne Probleme, da ich der Owner der Datei bin - nur würde ich doch gerne bei einer Sprache bleiben)?
Grüsse :)
Hello,
as Konzept ist eben hilfsweise der Safemode
Safemode einschalten:
Scriptberechtigter ist nun der Eigentümer des Verzeichnisses, in dem das Script liegt
oder der Eigentümer des Scriptes (oder der Eigentümer von beiden)
Für den Ressourcenberechtigten gilt analog das gleiche
Nun werden vom Webserver (PHP) nur noch Ressourcen angefasst, deren Ressourcenberechtigter identisch mit dem Scriptberechtigten ist
ggf. mit safe_mode_gid die Restriktionen etwas lockern
Dann wird das Prüfungsverfahren für die Berechtigungen in als Lockerung der Restriktion auch noch für die Gruppen durchgeführt.
Welstverständlich gelten die Zugriffsrechte auf Datei- und Verzeichnisebene weiterhin als zusätzlich Einschränkung.
Mit open_basedir wird für den VirtHost (oder sogar für das Verzeichnis, in dem das Script abgelegt wird) eine zusätzliche Einschränkung aufgebaut für alle Ressourcenzugriffe
Allerdings müssen auch
vernünftig eingestellt werden.
in den meisten Providereinstellungen kann man nämlich die Sessions der anderen User klauen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom