Moin Moin!
Hallo,
habe mir eine Dateistruktur herunterladen, diese Dateistruktur anschließend per FTP auf meinen Webspace kopiert und die Installation per Browser über eine PHP-Datei gestartet. Während der Installation fordert mich das Installationsscript auf die Rechte einiger Verzeichnisse auf 777 zu setzen.
Nicht gut.
777 heißt u.a. world writeable, d.h. JEDER auf dem Server darf die Dateien verändern. 775 ist schon schlimm genug, in der Regel reicht 755 für ausführbare Dateien und Verzeichnisse und 644 für den Rest.
Und warum 777 und nicht 666? Warum sollen von aller Welt beschreibbare Dateien auch noch ausführbar sein?
Dieses unerträgliche chmod 0777 als "Allheilmittel" für (PHP/Web-)Probleme erzeugt in aller Regel nur riesige Sicherheitslücken.
Warum wird die Dateistruktur denn nicht gleich Werksseitig mit den richtigen Rechten ausgeliefert, so das ich die Rechte anschließend nicht nochmal händisch per FTP auf 777 setzen muss.
Das dürfte am Dateiformat liegen. TAR kann durchaus die Dateiattribute erhalten, ZIP kann das meines Wissens nicht. Ganz einfach, weil ZIP aus der Welt der Single-User-Rechner (DOS) stammt, wo diese Dateiattribute far nicht vorkommen.
Erschwerend kommt FTP hinzu, das mehr oder weniger ein kleinstes gemeinsames Subset der möglichen Betriebssystem-Features kennt und den Rest dem jeweiligen FTP-Server und dem Benutzer überläßt. Beim Übertragen von einzelnen Dateien überträgt FTP ohne besondere Clients die Dateiattribute überhaupt nicht, Dateien werden mit Default-Attributen auf dem Server angelegt.
SCP und SFTP aus dem SSH-Paket können Dateien SICHER (d.h. verschlüsselt) übertragen, authentifiziert per verschlüsseltem Passwort oder noch besser per Public-Key-Verfahren. SFTP überläßt es dem Anwender, chmod auf dem Server auszuführen, d.h. Dateiattribute zu setzen, SCP ignoriert die Dateiattribute meines Wissens, genau wie FTP und SFTP.
Um ein Paket also "Werksseitig mit den richtigen Rechten" auszuliefern, mußt Du eine TAR-Datei direkt auf dem Server entpacken. Das setzt fast zwingend Shell-Zugriff auf den Webserver voraus, und den gibt es bei Massen-Webhostern in der Regel nicht einmal gegen Geld und gute Worte (außer man rüstet auf einen Managed Server oder Root Server, real oder virtuell, auf). Dort findet man typischerweise einen FTP-Zugang mit freigeschaltetem SITE CHMOD. Deswegen ist das manuelle Setzen der Dateiattribute fast unumgänglich. Natürlich könnte ein sehr williger Autor auch eine TAR-Datei mit passend gesetzten Rechten verteilen und darauf hinweisen, dass man sich das Gebastel sparen kann, wenn man die Datei direkt auf dem Server auspackt. Das macht die Installationsanleitung aber nur länger und fehleranfälliger.
Anmerkung: Neben TAR gibt es beispielsweise auch CPIO, das ebenfalls Dateiattribute sichert. Für die Verteilung von Paketen ist "nacktes" CPIO allerdings unüblich, es versteckt sich allerdings hinter einigen anderen Paketformaten, die typischerweise von Linux-Distributionen genutzt werden.
Eine Alternative zu FTP / SFTP / SCP ist rsync (über SSH), das kann Dateiattribute zwischen Unix-Systemen übertragen, nicht aber zwischen Unix und Nicht-Unix. Leute, deren Arbeitsrechner mit Windoof oder irgendeinem Exoten wie OS/2 oder DOS läuft, schauen also in die Röhre. Außerdem ist rsync sehr rechenaufwendig, und wird von Massenhostern (vermutlich) deswegen nicht angeboten.
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".