Navigationsleiste  |    Direktzugriff   |    Kurs  |     Home  

Linux-Kurs : Benutzer, Gruppen und Zugriffsrechte unter Linux


Multi-User

Linux ist ein Mulituser-System, das heiß es können mehrere Benutzer gleichzeitig an Linux arbeiten. Das mag dich nun etwas verwundern, denn wie sollte so etwas gehen, bei nur einer Tastatur, Maus und Monitor? Ganz einfach, vor ca. 20 Jahren gab es nur große teure Computer und an diesem waren mehrere Terminals (meist nur eine Tastatur mit Monitor) angeschlossen und so arbeiteten alle Benutzer gleichzeitig an einem Rechner.
Aber dieses Verfahren ist auch einem normalen PC sehr gut, du kannst als Benutzer arbeiten und gleichzeitig als root irgendwas einstellen. Auf einem Server sind sowieso meist mehrere Benutzer eingeloggt und das ist auch Multi-User ;-))

So, damit nun nicht das totale Chaos ausbricht, und jeder bei dem anderen in den Dateien rumschreibt, werden für alle Dateien und Verzeichnisse Rechte fest gesetzt. Das heißt, User_1 kann in seine Datei schreiben, während User_2 diese nur lesen kann und User_3 sieht gar keine Datei. Daraus folgt, das sich jeder User an das System anmelden muß, denn sonst wüßte das System ja nicht wer du bist.

Jedes Unix (also auch Linux) hat einen speziellen Benutzer, den Systemverwalter. Dieser darf alles, also alles löschen, überall drauf zugreifen und alles kaputt machen. Dieser Benutzer ist root, im Windows-Umfeld ist es der Administrator. Wenn du nun denkst, he prima, ich mache alles als root, vergiß es, als root kannst du dein System sehr schnell zerstören. Also immer schön als normale Benutzer anmelden und als root den Rechner administrieren. Denn, root weiß was er tut ;-)

Gruppen

Eben hatten wir schon mal kurz die Rechte angesprochen die jeder Benutzer hat. Möchte man nun für mehrere Benutzer die selben Rechte einstellen, packt man diese in eine Gruppe und weist der Gruppe spezielle Rechte zu. Damit kannst du die Zugriffsrechte besser verteilen.
Damit die Sache noch etwas einfacher wird, kann jeder Benutzer in mehreren Gruppen Mitglied sein.



Benutzer anlegen und verwalten

Benutzer anlegen

Nur der Benutzer root darf neue Benutzer anlegen und alte löschen. Das Paßwort kann natürlich jeder Benutzer selber ändern.
Um einen Benutzer anzulegen gibt es wiedermal verschiedene Möglichkeiten:
Benutze nun einfach mal adduser als root auf einer Konsole und legen Benutzer "testi" an:
[root] # adduser         #Neuen Benutzer anlegen



Noch ein Paar Tips:

Benutzer verwalten

Tja, da zu gibt es das Benutzer-Anlege-Tool deiner Distri oder verschiedene (Konsolen) Programme:

id zeigt Informationen über einen User an
chsh ändert die Standard-Einlog-Shell des Users (Das kann nur root)
passwd damit kann der Benutzer sein eigens Paßwort ändern


Wenn du schnell mehrere Dinge ändern willst, solltest du die Datei /etc/passwd von Hand editieren. Eine Zeile sieht dort so aus:
tux:x:501:100:Der kleine Tux:/home/tux:/bin/bash

Eigentlich ganz einfach zu lesen:
tux: x: 501: 100: Der kleine Tux: /home/tux: /bin/bash
der
Benutzername
das Paßwort
hier shadow-System
die Benutzer-
Nummer
die Gruppen-
Nummer
Beschreibung Homeverzeichnis Standard-Einlog-Shell

Hinweise:



Gruppen

Zu den Gruppen gibt es weniger zu sagen. Im Wesentlichen reichen diese Befehle aus:

groups zeigt die Gruppen des Benutzers an
groupadd Gruppe hinzufügen. Als root
groupdel Gruppe löschen. Als root
groupmod     Gruppen-Name oder Gruppen-Nummer ändern. Als root

Die Gruppen stehen in der Datei /etc/group und lassen sich dort schnell und einfach editieren. Hier mal ein Beispiel aus dieser Datei:
users:x:100:tux, tuxi

Und hier die Auflösung:
users: x: 100: tux,tuxi
der
Gruppen-Name
das
Paßwort
die Gruppen-
Nummer
Mitglieder der Gruppe

Hinweise:



Rechte an Dateien und Verzeichnissen

Zuerst schauen wir uns mal eine Datei an:
[tux] $ touch datei
[tux] $ ls -l datei
....
-rw-r--r--    1 tux    users       1246 Mär 28 13:46 datei
....


Das heißt nun folgendes: Die Datei datei gehört dem Benutzer tux und der Gruppe users (zu der tux auch gehört). Wichtig sind aber die ersten Buchstaben, diese geben die Rechte der Datei an. Und zwar :
- rw- r-- r--
Typ:
d = directory
-  = datei
Rechte des
Eigentümers
Rechte der
Gruppe
Rechte für
alle anderen

Dabei sind:
r      read = lesen
w write = schreiben, (auch löschen)
x execute = ausführen des Befehls

So und nun zeige ich dir wie du die Rechte ändert, dazu mußt du der Eigentümer der Datei sein (oder root), der Befehl lautet chmod (CHangeMODus) :

[tux] $ chmod u-w datei         #Rechte ändern
[tux] $ ls -l datei
....
-r--r--r--    1 tux    users       1246 Mär 28 13:46 datei
....


Und schon kann der Eigentümer nicht mehr in die Datei schreiben (ok, ist eine doofe Idee); die Syntax ist einfach: chmod wer +/- was:
Für unser Beispiel von oben hieße das: Der User (u) bekommt das Schreibrecht(w) abgenommen (-).

Am besten probierst du ein Paar Sachen aus, dann ist es einfacher zu verstehen ...

Besonderheiten bei Verzeichnissen

Die Rechte haben bei Verzeichnissen eine etwas andere Bedeutung:
r      read = lesen => Verzeichnis ansehen (z.B.: mit ls)
w write = schreiben, (auch löschen) => Dateien ins Verzeichnis schreiben
x execute = in das Verzeichnis wechseln (z.B.: mit cd )

Auch hier, ist ausprobieren der beste Weg es zu verstehen ...

Sonderrechte

Neben den bereits bekannten Rechten (rwx) gibt es noch zwei besondere Rechte:

SUID = set user ID on execution Das Programm wird beim Aufruf mit den Rechten des Eigentümers gestartet chmod u+s datei       #SUID setzen
GUID = set group ID on execution    Das Programm wird beim Aufruf mit den Rechten der Gruppe gestartet    chmod g+s datei       #GUID setzen


ACHTUNG !! SUID und GUID können extrem gefährlich sein!! Wenn das Programm root gehört, wird jeder der es ausführt für das Programm root !!!
Möchtest du das auch andere Benutzer ein Programm mit root-Rechten ausführen können, solltest du das Programm sudo benutzen. Dort stellst du in einer zentralen Datei die Rechte der anderen Benutzer ein, das sorgt für mehr Überblick.

Eigentümer und Gruppe ändern

Manchmal möchte man nicht die Rechte der Datei ändern, sondern den Eigentümer oder die Gruppe. Dafür gibt es die Programm chown (CHange OWNner = Eigentühmer wechseln) und chgrp (CHange GRouP = Gruppe wechseln). Den Eigentümer wechseln kann nur root, während die Gruppe vom Eigentümer gewechselt werden kann. Die Syntax ist recht einfach:

[root] # chown neuer_owner datei         #datei gehört nun dem Benutzer neuer_owner


[tux] $ chgrp neue_gruppe datei         #datei gehört nun der Gruppe neue_gruppe



 

ACL - Access Control Lists

Diese Rechtevergabe ist der Standard unter den UNIXen, leider reicht das aber vielfach einfach nicht mehr. Manchmal mußt du mehr als drei verschiedene Rechte vergeben. und dann?

Dann kommen Filesystem ins Spiel die ACL (Access Control Lists) beherschen, das gute alte ext2 kann das mit einem Pach auch, aber ich würde hierbei eher XFS oder JFS empfehlen.
Dazu mehr in diesem Tuxhausen-Artikel: Erweiterte Zugriffsrechte mit Access Control Lists





Kernel kompilieren    Inhalt    Prozesse

Erstellt: 2001-03-29 Autor: Markus Ungermann (markus@tuxhausen.de)
Letztes Update: 2007-10-01      URL: http://www.tuxhausen.de/kurs_user.html