Linux berechtigungen



  • hallo zusammen,

    ich probierte mich in die linux filesystem berechtigungen einzulesen.
    ich habe herausgefunden, dass ich berechtigungen nur an user, die gruppe
    oder an alle anderen vergeben kann.

    ich möchte aber einer datei die root gehört, einem anderen user die lese
    und schreibberechtigung verleihen.

    Wie funktioniert das????

    vielen dank für eure hilfe.



  • Mit dem normalen Rechtesystem:

    eine Gruppe erstellen,
    der Datei die Gruppe zuweisen,
    den User in die Gruppe tun



  • Wenn die Datei root gehört, und nur ein Benutzer bzw. eine Gruppe von Benutzern Rechte auf diese Datei haben sollen, dann musst du eine Gruppe für diese Benutzer erstellen man: groupadd(8) und mittels man: chgrp(1) die Gruppe der Datei ändern. Dann musst du mittels man: usermod(8) die Benutzer eintragen. Die Rechte der Datei ggf mit man: chmod(1){ ändern

    Hier ein kleines beispiel, wie das funktionieren soll.

    Angenommen du hast die Datei /etc/hallo.cfg (fiktive Datei) mit folgenden Rechten.

    $ ls -al /etc/hallo.cfg
    -rw-r--r--  1 root root 21 Oct  2 03:01 /etc/hallo.cfg
    

    Wir sehen, dass die Datei root gehört und die Gruppe der Datei ebenfalls root ist. root darf lesen, schreiben aber nicht ausführen. Die Benutzer der Gruppe root (hier ist root sowohl ein User als auch eine Gruppe, also nicht verwechseln) können nur lesen und alle andere Benutzer anderer Gruppen können auch nur lesen.

    So, stell dir vor, max und peter müssen komplette Rechte auf diese Datei haben, weil sie die webmasters deiner Seite sind und diese Datei die Konfiguration deiner Website hat. Alle andere Benutzer dürfen diese Datei nicht mal lesen. Du willst aber dass diese Datei weiterhin root als Besitzer hat (aus Sicherheitsgründen oder weil du es einfach so willst). Dann erstelle ich eine Gruppe webmaster so:

    $ groupadd webmaster
    

    Dann muss ich /etc/name.cfg ändern.

    $ chgrp webmaster /etc/hallo.cfg
    $ ls -al /etc/hallo.cfg 
    -rw-r--r--  1 root webmaster 21 Oct  2 03:01 /etc/hallo.cfg
    

    Nun ist die Gruppe der Datei webmaster. Jetzt müssen die Leute der Gruppe webmaster auch Schreiberechte bekommen und der Rest keine Rechte.

    $ chmod g+w,o-r /etc/hallo.cfg
    $ ls -al /etc/hallo.cfg 
    -rw-rw----  1 root webmaster 21 Oct  2 03:01 /etc/hallo.cfg
    

    g+w heißt, "gib Schreibrechte den Benutzern der Gruppe"
    o-r heißt, "entziehe Leserechte den Benutzern, die nicht in der Gruppe sind"

    Jetzt müssen wir max und peter in die Gruppe webmaster eintragen. peter und max sind bereits in den Gruppen user und audio (einfach mit groups benutzername verifizieren. Jetzt müssen sie auch in webmaster gehören. Das geht so:

    $ usermod -G user,audio,webmaster max
    $ usermod -G user,audio,webmaster peter
    

    Wenn peter und max eingeloggt sind, dann müssen sie sich ausloggen und einloggen, damit die Änderung der Gruppe wirksam wird. So, jetzt kann nur root, peter und max die Datei /etc/hallo.cfg lesen und schreiben und alle andere nicht mal lesen.

    Achtung: Das hier war ein Beispiel.



  • Vielen Dank für eure ausführliche Hilfe!!! 👍 👍
    Hat mir sehr geholfen.

    Gruss



  • Wenn dein Dateisystem ACLs unterstützt kannst du zum Beispiel einem weiteren User Leserechte geben mit:

    setfacl -m u:<user>:r <datei>

    Weitere Infos in der Manpage zu setfacl. Wenn ich mich richtig erinnere startet Suse automatisch mit aktivierten ACLs.


Anmelden zum Antworten