Rechteverwaltung in einem Multiusersystem

 


Benutzer 

Anlegen eines Benutzers


Um in einem Multiusersystem auch mit mehreren Benutzern zusammen arbeiten zu können, müssen erst einmal Benutzer angelegt werden. Diese können nur vom root angelegt werden.
Zum Anlegen von Benutzern sollte man das Tool adduser verwenden, weil es bei jedem Unix dabei sein sollte. adduser fragt den root nach dem Benutzernamen, Passwort und einige Zusatzinformationen des neuen Benutzers.

[root] # adduser

 

Verwalten von Benutzern

Der Benutzer kann sich mit Hilfe des Tools id Informationen über sich anzeigen lassen.

benutzer@arbeitsplatz /home/benutzer> id
uid=501(benutzer) gid=100(user) groups=200(user),


Der Benutzer sieht jetzt seine User-ID (501), Gruppen-ID (100) und zu welcher Gruppe er gehört (user).

Ein Benutzer kann und sollte sein Passwort in regelmäßigen Abständen ändern. Dies kann er mit dem Tool passwd machen. Das Tool fragt dann das alte und das neue Passwort ab, welches ab sofort Wirkung hat.

benutzer@arbeitsplatz /home/benutzer> passwd
Enter old password:
Enter new password:
Reenter new password:


chsh


 

Gruppen 

Anlegen

Oftmals ist es sinnvoll, Gruppen anzulegen, die dann bestimmte Dateien zusammen bearbeiten können. Der root kann mit den Befehlen groupadd und groupdel neue Gruppen erstellen oder alte Gruppen löschen:

[root] # groupadd gruppenname
[root] # groupdel gruppenname


Der root kann auch von schon einer bestehenden Gruppe mit dem Befehl groupmod den Namen bzw. die Gruppen-ID ändern:

[root] # groupmod -n neuername altername
[root] # groupmod -g 111 -o name


Mit dem Schalter -n wird der Gruppenname geändert. Mit dem Schalter -g ändert man die GID (Group-ID).

Jeder Benutzer kann selber gucken, zu welchen Gruppen er gehört, indem er groups in der Konsole eingibt:

benutzer@arbeitsplatz /home/benutzer/>groups
user audio floppy


In diesem Fall darf der Benutzer u.a. die Soundkarte sowie das Diskettenlaufwerk benutzen.

 

Rechte

Das Anlegen von Benutzern und Gruppen wäre sinnlos, wenn sie nicht auch noch bestimmte Rechte auf Dateien und Verzeichnisse bekommen würden.

 

Dateirechte

Die Rechte, die der Benutzer an einer Datei hat, kann man sich mit dem Befehl ls -l anzeigen lassen:

benutzer@arbeitsplatz /home/benutzer> ls -l
-rw-r--r-- 1 benutzer users 1350 Mär 31 21:51 testdatei
...


Diese Ausgabe verrät, dass die Testdatei dem User benutzer und zur Gruppe users gehört. Es dürfen alle diese Datei lesen, nur der Besitzer (benutzer) darf in sie auch schreiben.
 

chmod

Mit dem Befehl chmod kann man die Dateirechte ändern. Im obigen Beispiel stehen die Dateirechte am Anfang der Zeile (-rw-r--r--). Diese Reihe aus Buchstaben und Zeichen kann in 4 Blöcke aufgeteilt werden:

Aus drwxrwxrwx wird d rwx rwx rwx

Das erste Zeichen kann ein d (Dir), l (Link) oder - (eine Datei) sein.
Die drei anderen Blöcke zeigen die Rechte für die Benutzer des Computers. Der erste Block gilt für den Eigentümer der Datei (user: benutzer), der zweite Block gilt für die Gruppe (group: users) und der dritte Block gilt für alle anderen bisher nicht genannten (others: andere). 

Mit dem Befehl chmod können die Dateirechte geändert werden:

benutzer@arbeitsplatz /home/benutzer> ls -l
-rw-r--r-- 1 benutzer users 1350 Mär 31 21:55 testdatei

benutzer@arbeitsplatz /home/benutzer> chmod ugo+wx testdatei

benutzer@arbeitsplatz /home/benutzer> ls -l
-rwxrwxrwx 1 benutzer users 1350 Mär 31 21:56 testdatei


Der testdatei wurden mit diesem Befehl jedem Benutzer Schreib- und Ausführrechte gegeben. Die Zeichen der Schalter haben folgende Bedeutungen:

r Recht zum Lesen der Datei
w Recht zum Schreiben der Datei
x Recht zum Ausführen der Datei

u User (Besitzer)
g Group (Gruppe)
o Other (Alle anderen)

+ Recht hinzufügen
- Recht wegnehmen

Mit dem Schalter u-rwx würde man zum Beispiel dem Besitzer der Datei alle Rechte wegnehmen.

Zusätzlich gibt es bei chmod auch einen absoluten Modus, bei dem der Schalter aus einer dreistelligen Zahl besteht:

benutzer@arbeitsplatz /home/benutzer> ls -l
-rw-r--r-- 1 benutzer users 1350 Mär 31 21:58 testdatei

benutzer@arbeitsplatz /home/benutzer> chmod 755 testdatei

benutzer@arbeitsplatz /home/benutzer> ls -l
-rwxr-xr-x 1 benutzer users 1350 Mär 31 21:59 testdatei


Mit dem Schalter 755 darf der Besitzer mit der Datei alles machen, während die Gruppe und die anderen die Datei nur lesen und ausführen dürfen.
Die Zahl setzt sich folgendermaßen zusammen: Die erste Ziffer gilt für den User, die zweite Ziffer gilt für die Gruppe und die dritte Ziffer gilt für alle anderen. Die Ziffern werden aus der Tabelle berechnet:

4 Recht zum Lesen der Datei
2 Recht zum Schreiben der Datei
1 Recht zum Ausführen der Datei

Je nachdem, welche Rechte man einer Datei geben möchte, sucht man hier die Rechte raus und addiert die Zahlen.
Soll der Besitzer nur schreiben können, dann ist die erste Ziffer eine 4.
Soll die Gruppe lesen und schreiben können, dann ist die zweite Ziffer eine 6.
Sollen alle anderen lesen und ausführen können, dann ist die letzte Ziffer eine 5.
Daraus ergibt sich dann für den Befehl:

benutzer@arbeitsplatz /home/benutzer> chmod 465 testdatei

Skripte und Programme bekommen normalerweise immer das Recht 755 verliehen.

 

chmod bei Verzeichnissen

Bei Verzeichnissen sind die Rechte etwas anders als bei Dateien:

Datei Verzeichnis

Datei

Verzeichnis

r

Recht zum Lesen der Datei

Recht zum Verzeichnisinhalt anzeigen lassen (ls)

w

Recht zum Schreiben der Datei

Ins Verzeichnis schreiben (löschen)

x

Recht zum Ausführen der Datei

Das Verzeichnis betreten (cd)

 

Sonderrechte bei chmod

Bei dem Befehl chmod gibt es zwei Sonderrechte: SUID und SGID. Diese beiden Sonderrechte werden Programmen und Skripten verliehen, die von anderen Benutzern mit den Rechten des Eigentümers ausgeführt werden können.

SUID - set user ID on execution
Das Programm oder Skript wird mit den Rechten des Eigentümers ausgeführt.

SGID - set group ID on execution
Das Programm oder Skript wird mit den Rechten der Gruppe ausgeführt.

Gesetzt werden die Sonderrechte mit dem Schalter u+s bzw. g+s:

benutzer@arbeitsplatz /home/benutzer> ls -l
-rw-r--r-- 1 benutzer users 1350 Mär 31 22:08 testprogramm
benutzer@arbeitsplatz /home/benutzer> chmod u+s testprogramm
benutzer@arbeitsplatz /home/benutzer> ls -l
-rwsr-xr-x 1 benutzer users 1350 Mär 31 22:09 testprogramm


Ob ein Sonderrecht gesetzt wurde, erkennt man an dem s anstelle eines x in dem jeweiligem Block. Die Sonderrechte können für Benutzer und Gruppen gesetzt werden. Sie sollten aber nicht für den Benutzer root gesetzt werden, da Programme und Skripte das System gefährden können.

 

Sticky Bit

Jeder Benutzer kann ein sogenanntes Sticky Bit bei Dateien und Verzeichnissen setzen.
Bei Dateien bewirkt das Sticky Bit, dass der Programmcode im Arbeitsspeicher bleibt, soweit er nicht anderweitig gebraucht wird. Dies bringt bei langsamen Festplatten einen Geschwindigkeitsvorteil.
Bei Verzeichnissen ist das Sticky Bit noch sinnvoller zu verwenden. Zum Beispiel darf jeder im /tmp/ Verzeichnis schreiben und löschen, da es für jeden zugänglich ist und jeder seine temporären Dateien zwischenspeichern soll. Hier können sich mehrere Benutzer ihre Dateien gegenseitig weglöschen. Das Sticky Bit verhindert dies, indem es erlaubt, dass nur der Besitzer seine Datei umbenennen oder löschen darf, aber alle in die Datei schreiben dürfen, wenn diese nicht schon zum Schreiben geöffnet ist.

Gesetzt wird das Sticky Bit mit dem Schalter a=rwx,u+t oder 1777. Im Absoluten Modus wird das Sticky Bit mit einer 1 am Anfang gekennzeichnet. 


[root] # ls -l
drw-rw-rw- 1 root root 1350 Mär 31 22:15 tmp

[root] # chmod a=rwx,u+t tmp

[root] # ls -l
drwxrwxrwt 1 root root 1350 Mär 31 22:15 tmp


Ob das Sticky Bit gesetzt ist, erkennt man an dem t statt einem x in dem Rechteblock bei Other.

 

chgrp

Mit dem Befehl chgrp (CHange GRouP) kann der Benutzer eine Datei zu einer Gruppe hinzufügen:

benutzer@arbeitsplatz /home/benutzer> ls -l
-rw-r--r-- 1 benutzer users 1350 Mär 31 22:18 testdatei
benutzer@arbeitsplatz /home/benutzer> chgrp allen testdatei
benutzer@arbeitsplatz /home/benutzer> ls -l
-rw-r--r-- 1 benutzer allen 1350 Mär 31 22:19 testdatei


Die testdatei gehört jetzt zur Gruppe allen, welche die Datei nur lesen darf.
Wenn man Verzeichnisse einer anderen Gruppe zuordnen möchte sollte man den Schalter -R (Rekusiv) verwenden, damit auch alle Dateien in dem Verzeichnis zur neuen Gruppe gehören.
Um eine Datei einer Gruppe hinzufügen zu können, muss man der Gruppe angehören. Die Syntax ist hier einfach: chgrp gruppe datei1 datei2 datei2


 

chown

Der Befehl chown (CHange OWNer) ändert den Besitzer einer Datei und kann nur vom root ausgeführt werden.

[root] # chown benutzer datei

[root] # chown -R benutzer verzeichnis


Mit dem Schalter -R wird der Besitzer von allen Dateien in dem Verzeichnis mit geändert.
Mit dem Befehl kann auch die Gruppe geändert werden, indem man statt des Benutzernamens einen Doppelpunkt gefolgt von dem Gruppennamen schreibt.

[root] # chown :allen dateifueralle



... wird fortgesetzt ...



mc STRG-X-C


Beispiel
-Aufgabe
-Lösung

Home << Schule << ITA-Mappe << Betriebssysteme und Netzwerke Übersicht <<

Online: 1 | IP: | 29.03.2024 - 12:46:41  
©
Christian Klisch   - Alle Rechte vorbehalten - Impressum