Besitzer, Gruppe, Welt
Christoph
- ftp
Hallo,
bitte dringend um Eure Hilfe.
Was bedeutet dies bei den Lese und Schreibrechten?
Besitzer (owner)
Gruppe (group)
Welt (all)
bei Welt, ist dann das Internet gemeint und bei Gruppe, dass PHP was machen kann und bei Besitzer dass nur mit FTP gemacht werden kann??
danke mfg cyberchris
Hallo Christoph,
Besitzer (owner)
Jede Datei hat einen Besitzer. Dieser Teil definiert, was Programme, die unter der Benutzerkennung des Besitzers laufen, tun dürfen. (Lesen, schreiben, ausführen) Normalerweise bist Du der Eigentümer und das einzige Programm, was diese Benutzerkennung besitzt, ist das FTP-Programm.
Gruppe (group)
Jede Datei hat auch eine Gruppe. Dieser Teil der Rechte definiert, was Programe, die unter einer Benutzerkennung laufen, die Mitglied dieser Gruppe ist, tun dürfen. (Lesen, schreiben, ausführen) Welche Gruppe das ist, hängt von Deinem Hoster und von Dir ab.
Welt (all)
Dieser Teil der Rechte definiert, welche Rechte alle Programme haben, die unter einer Benutzerkennung laufen, die nicht von den oberen beiden Kategorien betroffen ist.
Normalerweise läuft der Webserver unter einer eigenen Benutzerkennung, z.B. www-data o.ä. PHP wird ja vom Webserver gestartet, daher hat PHP alle Rechte, die der Webserver auch hat. Du musst halt Deinen Hoster fragen, ob der Benutzer des Webservers sich in der Gruppe der Datei befindet - wenn ja, dann reicht es, der Datei Gruppenrechte zu geben, damit PHP mit ihr was anfangen kann, wenn nein, dann musst Du der Datei noch "Welt"-Rechte (wie Du es nennnst) geben, damit PHP mit ihr was anfangen kann.
Allerdings heißt "Welt" jetzt nicht, dass jeder x-beliebige Besucher dann direkt die Datei bearbeiten kann - "Welt" bedeutet nur jeder x-beliebige Besucher, der *Zugang* zum Webserver hat.
Viele Grüße,
Christian
use Mosche;
Allerdings heißt "Welt" jetzt nicht, dass jeder x-beliebige Besucher dann direkt die Datei bearbeiten kann - "Welt" bedeutet nur jeder x-beliebige Besucher, der *Zugang* zum Webserver hat.
Bzw. (etwas genauer), jeder, der sich irgendwie am Server einloggen kann.
Zugang zum _Web_server (Apache) hat quasi jeder, der irgendwie HTTP spricht :-)
use Tschoe qw(Matti);
Moin!
use Mosche;
Allerdings heißt "Welt" jetzt nicht, dass jeder x-beliebige Besucher dann direkt die Datei bearbeiten kann - "Welt" bedeutet nur jeder x-beliebige Besucher, der *Zugang* zum Webserver hat.
Bzw. (etwas genauer), jeder, der sich irgendwie am Server einloggen kann.
Stimmt alles beides aber leider so genau dann auch nicht.
"Welt", oder auch "Gruppe" und "User" bezieht sich nur auf das "Universum" des Servers - weswegen "Welt" eigentlich auch ganz schlecht formuliert ist, besser wäre "Andere".
Die Dateisystemrechte gelten für alle Zugriffe auf die Dateien, wobei ein Zugriff immer von irgendeinem Prozess erfolgt, der im System läuft und wärend dieses Ablaufs zwingend unter einer User-ID und einer Gruppen-ID rennt, die auch für die Prüfung der Zugriffsrechte genutzt wird.
Der Apache-Prozeß läuft also unter einer bestimmten UID und GID. Wenn diese IDs irgendwie mit denen der Datei übereinstimmen, gelten die Zugriffsrechte für die Gruppe oder sogar den User - wenn nicht, gelten die Rechte für "Andere".
Zugang zum _Web_server (Apache) hat quasi jeder, der irgendwie HTTP spricht
Richtig, aber da es beim Dateizugriff auf die UID/GID des _Webservers_ ankommt, ist die Aussage "Welt sind die Zugriffsrechte fürs Internet" falsch. Das hat auch nichts direkt mit "am Server einloggen" zu tun.
Wer sich einloggen kann, der startet in irgendeiner Weise wieder einen Prozess, der ihn übers Netzwerk mit irgendeiner Interaktivität versorgt. Dieser Prozess läuft natürlich mit einer UID/GID, vorzugsweise mit der, als der man sich eingeloggt hat (Telnet, SSH oder FTP machen das). Wenn man also einen Account hat, gelten für die eigenen Dateizugriffe mit Sicherheit andere Rechte aufgrund anderer Zugehörigkeiten, als bei Zugriffen des Webservers.
Es wäre zwar wohl grundsätzlich möglich, auch einen HTTP-Server mit wechselnden, je nach Login-Daten unterschiedlichen, UIDs laufen zu lassen - da man sich bei HTTP aber nicht einloggen kann, weil es in diesem Protokoll keine dauerhaft aufgebaute Verbindung gibt (im Gegensatz zu FTP zum Beispiel), dürfte das irgendwie schwierig werden.
Außerdem: Wenn der Webserver mit den gleichen Rechten Zugriff auf die Dateien hat wie deren Ersteller, dann wäre das durchaus ein gewisses Risiko für die Dateien. Denn der Ersteller hat in der Regel Schreibrechte, damit er die Dateien ändern/erneuern kann - der Webserver soll sie aber in der Regel nur lesen und ausliefern, benötigt also keine Schreibrechte. Es reicht deshalb aus, wenn der Webserver nur mit Gruppen- oder Welt-Zugriffsrechten arbeitet.
- Sven Rautenberg
Hallo Sven,
Es wäre zwar wohl grundsätzlich möglich, auch einen HTTP-Server mit wechselnden, je nach Login-Daten unterschiedlichen, UIDs laufen zu lassen - da man sich bei HTTP aber nicht einloggen kann, weil es in diesem Protokoll keine dauerhaft aufgebaute Verbindung gibt (im Gegensatz zu FTP zum Beispiel), dürfte das irgendwie schwierig werden.
suexec macht aber genau das.
Außerdem: Wenn der Webserver mit den gleichen Rechten Zugriff auf die Dateien hat wie deren Ersteller, dann wäre das durchaus ein gewisses Risiko für die Dateien. Denn der Ersteller hat in der Regel Schreibrechte, damit er die Dateien ändern/erneuern kann - der Webserver soll sie aber in der Regel nur lesen und ausliefern, benötigt also keine Schreibrechte.
Bei serverseitigen Anwendungen braucht er oftmals eben doch Schreibrecht.
Und wieviele Postings hatten wir hier schon, die dann genau an dem Problem gescheitert sind, daß sie ihre via CGI angelegten Objekte dann via FTP nicht bearbeiten konnten, weil diese mit den Berechtigungen des Webservers angelegt wurden?
Ich bin heilfroh, daß ich einen Server-Account mit suexec habe und deshalb identische Zugriffsrechte via HTTP und FTP.
Es reicht deshalb aus, wenn der Webserver nur mit Gruppen- oder Welt-Zugriffsrechten arbeitet.
Und wie willst Du dann die Dateien eines Kunden gegenüber Zugriffen von CGI-Programmen anderer Kunden auf demselben Server schützen?
a) Eine Gruppe pro Kunde? Das scheitert am administrativen Aufwand (und womöglich an einer Betriebssystem-Begrenzung).
b) Alle Kunden in eine gemeinsame Gruppe? Dann kann jeder andere Kunde meine Dateien lesen und schreiben - nein, danke.
Viele Grüße
Michael