Next: Partitionen und Dateisysteme
Up: Systemverwaltung
Previous: Genauere Betrachtung der Datensicherheit
Die Notwendigkeit einer Benutzerverwaltung liegt bei Mehrbenutzersystemen auf der Hand. Die User müssen dem System durch einen Eintrag in der Benutzerdatenbank /etc/passwd bekannt gemacht werden. Nachdem die Installation einer neuen Linux-Distribution abgeschlossen ist, gibt es zunächst nur den root-Account für die Systemverwalterin. Alle weiteren Benutzerbereiche müssen erst eingerichtet werden.
Selbst wenn Linux nur von einer einzigen Person benutzt wird, ist unbedingt anzuraten, diesen User als `normalen' Benutzer einzutragen. Beim alltäglichen Arbeiten unter Rootrechten sind die meisten Sicherheitsvorkehrungen des Kernels ganz abgeschaltet, oder sie lassen sich leicht umgehen. Auf diese Weise können leicht Fehler entstehen, die das gesamte System betreffen. Sie vermeiden die Gefahr, indem Sie sich unter einem normalen Useraccount einloggen und nur vorübergehend mit dem Programm su eine Shell mit Rootrechten starten.
Bei vielen Linux-Distributionen gibt es zur Unterstützung der Systemverwalterin Dienstprogramme, die das Ein- und Austragen von Benutzern mehr oder weniger automatisieren. Bei Caldera und RedHat ist es das Programm usercfg, bei Unifix und Linux-FT ist es xadmin, bei SuSE yast und bei wieder anderen sind es die Programme useradd, userdel, groupadd und groupdel, die mit der Shadow-Paßwort-Suite installiert werden. Die ersten der genannten Programme arbeiten mit grafischer Oberfläche und sind weitgehend selbsterklärend. Ansonsten können Sie Details zur Benutzung in den Manualpages nachlesen. Der Vorgang bei der Einrichtung eines neuen User-Accounts ist bei allen Programmen im Prinzip gleich:Alle Dateien, die beim Einrichten eines neuen Accounts bearbeitet werden, sind normale Textfiles. Sie können jeden Schritt ohne weiteres ``von Hand'' beziehungsweise mit Hilfe eines Texteditors durchführen.
Die zentrale Benutzerdatenbank ist die Datei /etc/passwd. In dieser Datei muß jeder Anwender aufgeführt sein, damit er sich einloggen kann.
Für jeden Anwender muß die Systemverwalterin hier eine Zeile mit sieben Feldern anlegen. Die Felder werden durch einen Doppelpunkt `:' voneinander getrennt. Sie haben folgende Bedeutung:
Benutzername:Paßwort:Benutzernummer:Gruppennummer:GCOS:Heimat:Shell
Jedem Benutzer steht das passwd-Kommando zur Verfügung, um sein Paßwort selbst zu verändern.
Beim manuellen Neueintrag eines Benutzers wird dieses Feld zunächst freigelassen. Unmittelbar nachdem der Account Eingerichtet ist sollte der Benutzer oder die Systemverwalterin unter dem neuen Benutzernamen das passwd Kommando aufrufen und ein Paßwort eingeben, damit der Account vor unberechtigten Usern geschützt ist.
Die Benutzer werden kernelintern nicht durch die Namen, sondern durch die ID unterschieden. Wenn eine Nummer zweimal mit unterschiedlichen Benutzernamen vergeben wird, behandelt der Kernel intern die beiden Accounts völlig identisch. Bei den Kommandos, die einen Benutzernamen anzeigen (z.B. ls -l oder id), wird immer der Eintrag verwendet, der als erstes in /etc/passwd steht.
Jeder User muß durch die Zuordnung in der Datei /etc/passwd Mitglied mindestens einer Benutzergruppe sein. Zusätzlich kann jeder User beliebig vielen weiteren Gruppen angehören. Die weiteren Zuordnungen finden durch entsprechende Einträge in der Datei /etc/group statt.
Der Realname wird von vielen News&Mail-Programmen bei der Zusammenstellung der Absenderadresse benutzt.
Wenn ein Benutzer keine interaktive Shell haben soll, kann auch ein beliebiges anderes Programm mit allen Argumenten in dieses Feld eingetragen werden. Zum Beispiel kann hier für UUCP Accounts der uucico Daemon aufgerufen werden. Der Account ,,sync`` ist ein anderes Beispiel, mit dem Sinn, auch von außerhalb die Synchronisation des Dateisystems mit dem Blockdepot auslösen zu können.
Das letzte Feld kann auch leer bleiben. Dann wird automatisch die Standardshell /bin/sh gestartet. Das siebente Feld wird nicht durch einen Doppelpunkt, sondern durch ein Zeilenende abgeschlossen.
Bereits mit der Erstinstallation eines Linux-Systems sind in der Paßwortdatei eine Reihe von Einträgen enthalten. Die mit diesen Daten festgelegten Benutzerbereiche gehören nicht zu natürlichen Personen, sondern zu funktionalen Rollen des Systems. Die Pseudouser sind als Eigentümer von Dateien und Verzeichnissen hilfreich, um die mit dem Eigentum an Systemdaten verbundenen Zugriffsrechte flexibel an die speziellen Anforderungen anzupassen. Auf diese Weise sorgen die Accounts uucp für das UUCP-Datentransfersystem oder postgres für das gleichnamige Datenbanksystem dafür, daß auf die Daten, mit denen sie operieren, nur unter der Kontrolle entstprechender Serverprogramme zugegriffen werden kann.
Darüberhinaus können die Pseudouser noch dazu dienen, die unüberschaubare Masse der Systemdaten ein wenig zu ordnen. Diese Möglichkeit wird jedoch von den Linux-Distributoren nicht genutzt: mehr als 99% aller Systemdateien gehören ohne Notwendigkeit dem Superuser root.
Das Betriebssystem unterstützt Gruppenarbeit indem es dem Eigentümer einer Datei erlaubt, die Zugriffrechte einer Benutzergruppe auf diese Datei frei festzulegen. Durch den oben beschriebenen Eintrag in der Datei /etc/passwd wird jeder User einer Benutzergruppe fest zugeordnet. Auf diese Weise wird festgelegt, zu welcher Gruppe die Dateien des Users bei deren Erzeugung gehören.
Jeder User kann zusätzlich noch weiteren Gruppen angehören. Diesen Gruppen kann er seine eigenen Dateien nach belieben zuordnen. Dabei ist jedoch zu beachten, daß jede Datei nur einer einzigen Gruppe gehören kann.
Ähnlich wie die Benutzeraccounts müssen auch die Gruppen dem Betriebssystem bekannt gemacht werden, bevor sie benutzt werden können. Das geschieht durch einen Eintrag in der Datei /etc/group. Für jede Benutzergruppe existiert eine Zeile in dieser Datei. Jede Zeile besteht aus vier Feldern, die durch einen Doppelpunkt (`:') voneinander getrennt sind.
Für einen gültigem Eintrag muß mindestens das erste und dritte Feld (Gruppenname und Gruppennummer) vorhanden sein. Durch so einen Eintrag wird der Gruppennummer, die in der Paßwortdatei einem User zugeordnet wurde, ein Gruppenname gegeben. Dieser Name wird bei einem langen Listing vom Programm ls ausgegeben.
Die Felder für Paßwort und/oder Userliste müssen nur für die Gruppen ausgefüllt werden, deren Mitglieder mehr als einer Benutzergruppe angehören. Wenn ein User in einer oder mehr Userlisten aufgeführt ist, hat er automatisch die Zugriffsrechte dieser Gruppen, zusätzlich zu der Hauptgruppe, die in der Paßwortdatei eingetragen ist. Die Gruppenzugehörigkeit einer neu erzeugten Datei wird weiterhin durch die Hauptgruppe bestimmt. Der User kann seine eigenen Dateien mit Hilfe des Systemprogramms chgrp jeder Gruppe übereignen, in deren Userliste er eingetragen ist. Außerdem ermöglicht das Programm newgrp das vorübergehende Wechseln der Hauptgruppe.
Die in der Userliste eingetragenen Gruppenmitglieder werden nicht nach einem Paßwort gefragt, wenn sie mit dem newgrp-Kommando die Hauptgruppe wechseln wollen. Anwender ohne Eintrag können sich mit einem Paßwort legitimieren, um die Rechte einer bestimmten Gruppe zu erhalten, wenn im zweiten Feld des Gruppeneintrags ein verschlüsseltes Paßwort eingetragen ist und das Programm newgrp diese Art der Authentifizierung unterstützt.
Weil Gruppenpaßwörter zwangsläufig ausgetauscht werden müssen, wird aus Gründen der Datensicherheit von der Verwendung dieser Methode abgeraten. Anstelle eines verschlüsselten Paßwortes sollte zur Absicherung ein Sperreintrag (z. B. VOID oder *) in das zweite Feld geschrieben werden.
Wie in der Paßwortdatei sind auch in der Gruppendatei bereits mehrere Gruppen eingerichtet, wenn Sie ein Linux-System neu installieren. Der Zweck dieser Gruppen entspricht dem der Pseudouser in /etc/passwd. Insbesondere für die Zugriffskontrolle auf die verschiedenen Gerätedateien in /dev werden einige Gruppen tatsächlich benutzt. Die Gruppenbezeichnungen disk, tty, daemon, mail u.s.w. erklären sich selbst. Die Gruppe wheel, die unter BSD alle User enthält, die das Systemprogramm su ausführen dürfen, wird von Linux in dieser Weise nicht unterstützt. Wie bei der Paßwortdatei gibt es auch für die Gruppendatei eine Erweiterung durch das Shadow-Paßwortsystem. Die Gruppenpaßwörter, die in der normalen group Datei wie in passwd verschlüsselt, aber für alle User lesbar abgelegt sind, werden hier dort der separaten Datei /etc/gshadow gespeichert. Dort werden auch zusätzliche Informationen zur Gruppe festgehalten, beispielsweise der Name des zum Ein- und Austragen von Mitgliedern autorisierten Gruppenverwalters.Jedem natürlichen Benutzer muß durch den Eintrag in der Paßwortdatei ein Verzeichnis als eigener Bereich zugeordnet werden. Dieses Heimatverzeichnis trägt häufig den Namen des Benutzers und wird normalerweise als Unterverzeichnis von /home angelegt. Das Verzeichnis muß dem Benutzer und seiner Hauptgruppe gehören.
Wenn der Useraccount nicht durch eines der halbautomatischen Adminstrationsutilities erzeugt wird, muß das Verzeichnis von der Systemverwalterin mit dem Systemprogramm mkdir erzeugt und anschließend durch chown dem neuen Eigentümer ``geschenkt'' werden.
Häufig werden einem neuen User einige Dateien als Erstausstattung in sein Heimatverzeichnis kopiert. Eine Sammlung solcher Dateien befindet sich im Verzeichnis /etc/skel. Es handelt dabei Initialisierungsdateien für verschiedene Programme, zum Beispiel .bash_profile, .Xdefaults, .fvwmrc oder .emacs. Da die Namen dieser Dateien mit einem Punkt beginnen, werden sie bei einem Listing nur angezeigt, wenn die Option -a für alle benutzt wird. Die Dateien in /etc/skel sollten vor allem als Beispiel und Anregung für den User dienen.Das folgende Beispiel zeigt die Kommandofolge zum Erzeugen eines neuen Heimatverzeichnisses:
# mkdir /home/dirk # cp -a /etc/skel/{.[^.]*,*} /home/dirk # chown -R dirk.users /home/dirk # chmod 1700 /home/dirk # _
Die Konstruktion {.[^.]*,*}
wird von der bash ausgewertet und
sorgt dafür, daß wirklich der gesamte Inhalt des Verzeichnisses kopiert wird.
Die Dateien, deren Namen mit einem Punkt beginnen, werden von einem einfachen
Sternchen nicht erfaßt. Die beiden Links . und .. zeigen auf
das Verzeichnis selbst und sein übergeordnetes Verzeichnis und sollen deshalb
nicht kopiert werden.
Durch die Änderung des Zugriffmodus auf den Wert 1700 wird das neue Heimaverzeichnis für die Gruppe und alle anderen Systembenutzer vollständig abgeschlossen. Das Löschen einer Datei aus diesem Verzeichnis ist nur dem Eigentümer möglich.
Das Linux Anwenderhandbuch