Springe zu: Hauptnavigation, Themennavigation, Seiteninhalt, Spezielle Seiten

Dateien zur Benutzer- und Gruppenverwaltung

Alle Benutzer- und Gruppendaten eines Linux-Systems werden in separaten Konfigurationsdateien abgelegt. Jede Distribution stellt Programme zum Bearbeiten dieser Dateien bereit. Daher wird man wohl recht selten direkt an den Konfigurationsdateien Änderungen vornehmen müssen. Ich möchte deren Aufbau jedoch trotzdem erklären.

Die Verwaltung der Gruppendaten

Auf einem Linux-System gibt es Benutzerkonten und Benutzergruppen. Jedes Benutzerkonto ist mindestens Mitglied in einer Benutzergruppe. Gerade in großen Netzwerken kann es sehr sinnvoll sein, viele Benutzerkonten in einer Benutzergruppe zusammenzufassen. So lassen sich zum Beispiel Verzeichnisse und Dateien nur den Mitgliedern einer Benutzergruppe zur Verfügung stellen und Zugriffsberechtigungen auf die Mitglieder einzelner Benutzergruppen beschränken. Alle Benutzer eines FTP-Servers können beispielsweise in einer Gruppe verwaltet werden.

Die Datei /etc/group

In der Datei /etc/group werden die Namen der Benutzergruppen und deren Mitglieder gespeichert. Jede Zeile hat vier Felder, die durch einen Doppelpunkt voneinander getrennt werden. Die Felder haben folgende Bedeutung:

Gruppenname
Hier steht der Name der Benutzergruppe.
Passwort
Jeder Benutzergruppe kann ein Gruppenpasswort zugeteilt werden. Ein Benutzer kann bei Kenntnis des Passwortes in diese Gruppe wechseln, auch wenn er kein Mitglied dieser Gruppe ist. Das Gruppenpasswort wird in der Datei /etc/gshadow gespeichert.
Gruppen-ID
Dies ist die systeminterne Gruppennummer. Nummern kleiner 1000 sind für Systemgruppen reserviert.
Mitgliederliste
Die Benutzernamen der Gruppenmitglieder werden hier durch ein Komma getrennt aufgeführt. Ein Benutzername muss hier nur dann aufgeführt werden, wenn er nicht bereits durch einen Eintrag in der Datei /etc/passwd zu dieser Gruppe gehört.

Hier die ersten 20 Zeilen der Datei /etc/group:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:simon
fax:x:21:
voice:x:22:
cdrom:x:24:simon
floppy:x:25:simon
tape:x:26:

Der Benutzer simon ist demnach neben seiner Standardgruppe auch Mitglied in den Gruppen dialout, cdrom und floppy.

Die Datei /etc/gshadow

Die Datei /etc/gshadow ist nicht für jeden Benutzer zugänglich. Nur der Benutzer root besitzt Lese- und Schreibrechte für diese Datei. Mitglieder der Gruppe shadow können die Datei nur auslesen.

Die vier Felder der Datei werden durch einen Doppelpunkt voneinander getrennt und haben folgende Bedeutung:

Gruppenname
Hier steht der Gruppenname im Klartext.
Passwort
Ist ein Passwort für diese Gruppe gesetzt, steht es hier verschlüsselt. Meistens ist hier aber kein Passwort eingetragen.
Gruppenverwalter
Der Systemadministrator kann einen Benutzer als Gruppenverwalter bestimmen. Der Gruppenverwalter kann das Gruppenpasswort ändern und neue Benutzer der Gruppe hinzufügen oder entfernen.
Gruppenmitglieder
Die Gruppenmitglieder werden durch ein Komma getrennt aufgeführt. Ein Benutzername muss hier nur dann aufgeführt werden, wenn er nicht bereits durch einen Eintrag in der Datei /etc/passwd zu dieser Gruppe gehört.

Hier die ersten 20 Zeilen der Datei /etc/gshadow:

root:*::
daemon:*::
bin:*::
sys:*::
adm:*::
tty:*::
disk:*::
lp:*::
mail:*::
news:*::
uucp:*::
man:*::
proxy:*::
kmem:*::
dialout:*::simon
fax:*::
voice:*::
cdrom:*::simon
floppy:*::simon
tape:*::

Der Benutzer simon ist demnach neben seiner Standardgruppe auch Mitglied in den Gruppen dialout, cdrom und floppy.

Die Verwaltung der Benutzerdaten

In diesem Abschnitt beschreibe ich alle Benutzerdaten und den Aufbau der benutzerspezifischen Dateien.

Benutzername und Passwort

Auch unter Linux besteht ein Benutzerkonto aus einer Kombination von Benutzername und Kennwort. Neben diesen Angaben muss das System noch weitere Attribute eines Benutzers verwalten und berücksichtigen. Diese werden im weiteren Verlauf dieses Artikels vorgestellt.

Benutzer- und Gruppen-ID

Bezieht sich der Anwender auf einen bestimmten Benutzer, gibt er diesen durch seinen Benutzernamen an. Linux verwendet intern für jeden Benutzer eine Identifikationsnummer, die so genannte User-ID (UID). Gibt man einen Befehl ein, der als Argument einen Benutzernamen erwartet, wird dieser zunächst in die entsprechende User-ID aufgelöst.

Neben einer User-ID besitzt jeder Benutzer eine Gruppen-ID (GID). So kann das System über die Zugriffsberechtigungen jedes Benutzers entscheiden. Ein Benutzer kann auch in verschiedenen Benutzergruppen Mitglied sein, wie du bereits weiter oben erfahren hast. Gibt man einen Befehl ein, der als Argument einen Gruppennamen erwartet, wird auch dieser in die interne Gruppen-ID aufgelöst.

Der Benutzer root verfügt immer über die User- und Gruppen-ID 0.

Die Shell

Meldet sich ein Benutzer über eine Konsole am System an, wird eine Shell (Befehlsinterpreter) gestartet. Jedem Benutzer kann eine individuelle Shell zugeteilt werden. In manchen Situationen kann es aber auch sinnvoll und erwünscht sein, dass ein Benutzer über keine Shell verfügt. Dies ist zum Beispiel bei Systembenutzern der Fall.

Das Heimatverzeichnis

Nach dem Einloggen am System und dem Start der Shell befindet man sich in seinem zugewiesenen Heimatverzeichnis (home directory). Dieses Verzeichnis und all seine Unterverzeichnisse dienen zur Speicherung von Dateien, die meist ausschließlich für den Benutzer bestimmt sind. Neben den Arbeitsdateien und -verzeichnissen werden im Heimatverzeichnis auch Dateien mit applikationsspezifischen Einstellungen des Benutzers gespeichert.

Benutzertypen: root, Standardbenutzer, Systembenutzer

Es ist wichtig zu wissen, dass die Unterscheidung zwischen Standard- und Systembenutzern willkürlich ist und nicht vom Linux-System festgelegt wird. Es gibt viele Benutzerkonten, die ausschließlich für die Arbeit eines Dienstes eingerichtet werden. Man kann daher zwischen folgenden Benutzertypen unterscheiden:

root
Das Konto des Benutzers root verfügt über weitreichende Rechte über das System und sollte nur zur Systemadministration verwendet werden. Läuft ein Dienst unter der Kennung des Benutzers root, hat dieser vollen Zugriff auf das System. Fehlerhafte Programme können daher schwere Schäden am System verursachen. Aus Sicherheitsgründen sollten nur wenige Programme und Dienste unter dieser Kennung laufen.
Systembenutzer
Nicht jeder gestartete Dienst auf einem System benötigt die Rechte des Benutzers root. Jeder unter der Benutzerkennung root gestartete Dienst verfügt über weitreichende Rechte, die zur Beschädigung oder des Missbrauchs des Systems genutzt werden können. Startet man Dienste jedoch unter eigenen Benutzerkennungen, können diese nicht das ganze System beschädigen. Systembenutzern wird häufig die Shell /bin/false zugewiesen. Das Programm /bin/false beendet sich nach dessen Aufruf sofort wieder, sodass es beim Login zu keiner Shell-Session kommt. Soll ein Prozess ohne Benutzershell gestartet werden, muss dies über andere Mechanismen (zum Beispiel über Startskripte während des Bootens geschehen.
Standardbenutzer
Unter dieser Art von Benutzern sollte jeder normale Benutzer arbeiten. Standardbenutzern wird häufig die Shell /bin/bash zugewiesen.

Die Datei /etc/passwd

In der Datei /etc/passwd werden Informationen über alle Benutzerkonten des Systems gespeichert. Jede Zeile enthält Informationen über einen Benutzer und hat folgende Felder, die durch einen Doppelpunkt voneinander getrennt werden:

Benutzername
Das erste Feld enthält den Benutzernamen im Klartext.
Passwort
Ist dieses Feld leer, ist ein Login ohne Passwortabfrage möglich. Enthält das Feld ein x bedeutet dies, dass das Passwort verschlüsselt in der Datei /etc/shadow steht.
UID
Hier steht die User-ID des Benutzers. Die Zahlen unterhalb von 1000 sind für Systembenutzer vorgesehen.
GID
Hier steht die Gruppen-ID des Benutzers. Zahlen unterhalb von 1000 sind für Systemgruppen vorgesehen.
Info
Hier können weitere Informationen über den Benutzer, wie der vollständige Name, seine Telefonnummer, Zimmernummer, o. ä. eingetragen werden. Die einzelnen Einträge müssen durch ein Komma getrennt werden..
Heimatverzeichnis
Hier ist der vollständige Pfad zum Heimatverzeichnis des Benutzers zu finden.
Shell
Hier findet man den absoluten Pfad zur Shell, die nach dem Anmelden gestartet werden soll. Bleibt das Feld leer, wird die Shell /bin/sh verwendet.

Hier ein Auszug der Datei /etc/passwd:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
Debian-exim:x:100:102::/var/spool/exim4:/bin/false
statd:x:101:65534::/var/lib/nfs:/bin/false
identd:x:102:65534::/var/run/identd:/bin/false
simon:x:1000:1000:Simon Bienlein,,,:/home/simon:/bin/bash

Die Datei /etc/shadow

Jede Zeile der Datei /etc/shadow enthält neun Felder, die durch einen Doppelpunkt voneinander getrennt werden:

Benutzername
Das erste Feld einer Zeile enthält den Benutzernamen im Klartext.
Passwort
Hier steht das verschlüsselte Passwort.
DOC
Die Anzahl der vergangenen Tage ab dem 01.01.1970, an dem das Passwort zuletzt geändert wurde.
MinD
Dieses Feld enthält die Anzahl der Tage, die das Passwort mindestens gültig ist.
MaxD
Hier wird die maximale Anzahl der Tage gespeichert, die das Passwort gültig ist.
Warn
Enthält die Anzahl der Tage vor Ablauf des Passwortes, ab der vor dessen Verfall zu warnen ist.
Exp
Diese Zahl legt fest, wie viele Tage das Passwort trotz Ablauf noch gültig ist.
Dis
Bis zu diesem Tag (ab dem 01.01.1970 gezählt) ist das Benutzerkonto gesperrt.
Res
Dieses Feld hat im Moment keine Bedeutung und wird nicht berücksichtigt.

Hier ein Auszug der Datei /etc/shadow:

root:$1$qaVgob5i$USzG.KhW6cXLuTQSelden1:13486:0:99999:7:::
daemon:*:13377:0:99999:7:::
bin:*:13377:0:99999:7:::
sys:*:13377:0:99999:7:::
sync:*:13377:0:99999:7:::
games:*:13377:0:99999:7:::
man:*:13377:0:99999:7:::
lp:*:13377:0:99999:7:::
mail:*:13377:0:99999:7:::
news:*:13377:0:99999:7:::

Das Verzeichnis /etc/skel

Möchte man neu angelegte Benutzer mit Konfigurationsdateien ausstatten, kopiert man diese in das Verzeichnis /etc/skel. Wird ein neuer Benutzer angelegt, können die Dateien dieses Verzeichnisses in das Heimatverzeichnis des neuen Benutzers kopiert werden. Konfigurationsdateien beginnen meist mit einem Punkt. Folgende Dateien befinden sich z. B. im Ordner /etc/skel:

  • .bash_logout
  • .bash_profile
  • .bashrc

Datum der Veröffentlichung: Montag, 04.12.2006

Nach oben

Diese Seite drucken