Andreas-Lindig: Benutzergruppen und Dateirechte unter Linux

Hallo Forum,

Jetzt habe ich mich in die Dateirechte bei Linux etwas eingelesen und - hoffe ich - so einigermaßen verstanden, aber ich verstehe eins nicht: wer genau sind die drei verschiedenen Nutzergruppen unter Linux?

Dies erhielt ich schonmal zur Antwort:

Besitzer ist der der die Datei angelegt hat,

Und wer hat die Datei "angelegt"? Klingt vielleicht doof, aber unter so einem Betriebssystem kann man ja nicht mit dem "gesunden Menschenverstand" daherkommen. Also, wenn ich jetzt mit meinem FTP-Client eine Datei auf meinem Webspace anlege bzw. eine dorthin kopiere - wer ist dann der Besitzer? Ich mit meinem Passwort oder was? Und wer ist der Besitzer, wenn ein PHP-Script von mir eine Datei angelegt hat?

die Gruppe ist seine Standardgruppe, oder wahlweise ein andere Gruppe in der der Besitzer ist.

aha! Wer genau darf eine Datei auf meinem Webspace überschreiben, für die die "Gruppe" das schreibrecht hat?

Welt sind alle Benutzer des Systems. Wenn Du z.B. im Shared Hostimg bist sind die anderen Benutzer auch die User der anderen Kunden des Providers, die ebenfalls auf Deiner Maschine sind.

Also: andere mit FTP-Zugang bei meinem Hoster können mit den Rechten für "welt" auf meinem Space rumgeistern? Wenn ich richtig verstehe, ist der Browser, der eine Webseite aufruft doch auch "welt" gell? Sollten also Dateien für Welt immer nur auf "lesen" stehen oder muß der die ggf. auch "ausführen" können?

Fragen über Fragen...

Gruß, Andreas

--
<img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
http://was-ist-das.andreas-lindig.de

  1. Hi!

    Jetzt habe ich mich in die Dateirechte bei Linux etwas eingelesen und - hoffe ich - so einigermaßen verstanden, aber ich verstehe eins nicht: wer genau sind die drei verschiedenen Nutzergruppen unter Linux?

    Du meinst "User, Group, World"?

    Zu deutsch: "Benutzer(dem die Datei gehört), Gruppe, Welt(alle Benutzer des Systems)"

    Dies erhielt ich schonmal zur Antwort:

    Besitzer ist der der die Datei angelegt hat,

    korrekt.

    Und wer hat die Datei "angelegt"? Klingt vielleicht doof, aber unter so einem Betriebssystem kann man ja nicht mit dem "gesunden Menschenverstand" daherkommen.

    natürlich!

    Also, wenn ich jetzt mit meinem FTP-Client eine Datei auf meinem Webspace anlege bzw. eine dorthin kopiere - wer ist dann der Besitzer?

    Wer verwendet denn die entsprechenden System-Calls um die Datei wirklich im Dateisystem zu speichern? Dein Client sicher nicht, weil er ja nur Zugriff auf den FTP-Server hat. Im Dateisystem wird die Datei vom FTP-Server gespeichert, also ist der (Unix-)Benutzer unter dem der FTP-Server läuft der Besitzer der Datei.

    Ich mit meinem Passwort oder was?

    Kommt drauf an was Du mit "ich" meinst. Dein FTP-User sicher nicht. Der hat so gar nichts mit dem Betriebssystem zu tun und existiert nur im FTP-Kontext.

    Und wer ist der Besitzer, wenn ein PHP-Script von mir eine Datei angelegt hat?

    Genauso wie oben. Wer schreibt die Datei letztendlich? Genau, der PHP-Prozess oder der Webserver-Prozess, je nachdem. Und eben der Benutzer unter dem dieser Prozess läuft ist der Besitzer der Datei.

    die Gruppe ist seine Standardgruppe, oder wahlweise ein andere Gruppe in der der Besitzer ist.

    aha! Wer genau darf eine Datei auf meinem Webspace überschreiben, für die die "Gruppe" das schreibrecht hat?

    Wenn die Gruppe Schreibrechte hat darf jeder schreiben der Mitglied eben dieser Gruppe ist.

    Welt sind alle Benutzer des Systems. Wenn Du z.B. im Shared Hostimg bist sind die anderen Benutzer auch die User der anderen Kunden des Providers, die ebenfalls auf Deiner Maschine sind.

    Also: andere mit FTP-Zugang bei meinem Hoster können mit den Rechten für "welt" auf meinem Space rumgeistern?

    Das kommt drauf an wie das System konfiguriert ist. Bei FTP besteht ja die Möglichkeit im FTP-Server die Rechte der FTP-Nutzer weiter zu beschränken, z.B. in ein bestimmten Unterverzeichnis einzusperren.

    Aber man kann mit Systemaufrufen auf solche Dateien zugreifen.  Aber dazu musst Du die Pfade wissen. Wenn jemand z.B. SSH-Zugang hat und den Pfad zu Deiner Datei kennt, könnte er möglicherweise auf die Datei zugreifen.

    Wenn ich richtig verstehe, ist der Browser, der eine Webseite aufruft doch auch "welt" gell?

    Der Browser hat mit dem System nichts zu tun. Welt sind nur Unix-Benutzer, also z.B. User die sich über ein Terminal einloggen können, oder User von Programmen wie eben Webserver. Das heißt _Du_ könntest mit einem PHP-Script Dateien auf dem System lesen, die world-readable sind. Ein Browser kann nur dass was der Webserver und Deine Scipte zulassen.

    Sollten also Dateien für Welt immer nur auf "lesen" stehen oder muß der die ggf. auch "ausführen" können?

    Das kommt drauf an wie das System konfiguriert ist. Manche Hoster schaffen es nicht vernünftig so dass man für alle möglichen Dinge Dateien World-readable/writeable... machen muss.

    Aber das kann Dir nur Dein Hoster beantworten. "Ausführen" braucht man bei Web-Applikationen seltener, da man das normalerweise nicht benötigt. HTML-Dateien werden von Webserver normalerweise nur gelesen, vom FTP-Server z.B. überschreiben, PHP-Dateien werden vom PHP-Interpreter auch nur gelesen, ausführen hieße sowas wie <? system('php.script.php'); ?>, das würde dann direkt ausgeführt und brauchte entsprechende Rechte und entsprechende Angaben zum Pfad zum PHP-Interpreter...

    Ausführen braucht man lediglich um in Verzeichnisse wechseln zu können.

    Folgende Artikel dürften für Dich von Interesse sein:
    http://aktuell.de.selfhtml.org/artikel/server/linux/index.htm#rechte
    http://www.selflinux.org/selflinux/html/nutzer_unter_linux.html

    Grüße
    Andreas

    PS: die Rechtschreibprüfung gefällt mir langsam... ;-)

    1. Hello,

      Also, wenn ich jetzt mit meinem FTP-Client eine Datei auf meinem Webspace anlege bzw. eine dorthin kopiere - wer ist dann der Besitzer?
      Wer verwendet denn die entsprechenden System-Calls um die Datei wirklich im Dateisystem zu speichern? Dein Client sicher nicht, weil er ja nur Zugriff auf den FTP-Server hat. Im Dateisystem wird die Datei vom FTP-Server gespeichert, also ist der (Unix-)Benutzer unter dem der FTP-Server läuft der Besitzer der Datei.

      Die Instanz des FTP-Servers läuft üblicherweise unter dem Account des Users, der sich authentifiziert. Owner wird also der logged User und Gruppe dessen Standardgruppe.

      Es gibt bestimmt möglichkeiten, den proftpd (oder welcher Daemon gerade im Einsatz ist) anders zu konfigurieren. Nur, was soll der Daemon-User mit den ganezn Dateien?

      Kommt drauf an was Du mit "ich" meinst. Dein FTP-User sicher nicht. Der hat so gar nichts mit dem Betriebssystem zu tun und existiert nur im FTP-Kontext.

      Der ftp-user ist üblicherweise auch identisch mit dem User am Betriebssystem. Wie soll man denn sonst ein einheitliches Rechtesystem hinbekommen?

      Du verwechseltst da bestimmt was mit samba. Aber auch dort gelten erst die Linux-Rechte und dann noch als weiteres Filter die Samba-Rechte.

      Und wer ist der Besitzer, wenn ein PHP-Script von mir eine Datei angelegt hat?

      In diesem fall ist es tatsächlich meistens der PHP-Server. Es aoll aber ein Auth-Modul für den FTP-Server/Apachen geben, dass es ermöglichen soll, dass der PHP-Prozess mit den Rechten des authentifizierten Users läuft. Ich habe es aber noch nicht gesehen und ausprobiert.

      die Gruppe ist seine Standardgruppe, oder wahlweise ein andere Gruppe in der der Besitzer ist.

      Mit chgrp kann der PHP-Prozess dann anschließend noch ändern. Aber er muss mit dem User in derselben Gruppe sein, die er als Ziel einstellen soll.

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen