1.111.1
Verwalten von Benutzer- und Gruppenkonten und verwandten Systemdateien
Beschreibung:
Prüfungskandidaten sollten in der Lage sein, Benutzerkonten hinzuzufügen, zu
löschen, zu deaktivieren und zu ändern. Enthaltene Tätigkeiten beinhalten
das Hinzufügen und Löschen von Gruppen und das Ändern der Benutzer- und
Gruppeninformation in den passwd/group Datenbanken. Ebenfalls enthalten ist
das Erstellen von speziellen und eingeschränkten Konten.
Die wichtigsten Dateien, Bezeichnungen und Anwendungen:
- chage
- gpasswd
- groupadd
- groupdel
- groupmod
- grpconv
- grpunconv
- passwd
- pwconv
- pwunconv
- useradd
- userdel
- usermod
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/gshadow
Um mit einem Linux-Rechner arbeiten zu können, muß man eine gültige
Userkennung auf diesem Rechner besitzen. Ein wichtiger Teil der
administrativen Aufgaben eines Systemverwalters bezieht sich auf die
Verwaltung dieser User-Accounts. Dieser Abschnitt behandelt die dazu
notwendigen Fähigkeiten.
Ein User auf einem Linux-Rechner wird intern über seine UserID (UID), eine
Nummer von 0 bis 65535, verwaltet. Der User mit der Nummer 0 ist der
Systemverwalter. Nicht der Name root sondern die UserID 0 machen ihn zum
Superuser. Alle anderen User sind sogenannte Normaluser, deren Rechte zwar
stark unterschiedlich sein können, wobei der Unterschied aber nicht über die
UserID definiert ist.
Jeder User gehört mindestens einer Gruppe zu, kann aber Mitglied beliebig
vieler Gruppen sein. Eine dieser Gruppen ist die Login-Gruppe (manchmal auch
primäre Gruppe genannt) des Users, die
Gruppe, der später die Dateien gehören werden, die der User anlegt.
Die Dateien, in denen die Informationen über User und Gruppen abgelegt
werden und die Befehle, die wir zum Anlegen und Bearbeiten dieser
Userinformationen brauchen werden im Folgenden dargestellt.
Die Datei /etc/passwd
Die Datei /etc/passwd enthält alle Usereinstellungen, bis auf das
verschlüsselte Passwort. In älteren Versionen ist auch das Passwort hier
abgelegt, aus Sicherheitsgründen wurde es aber in den neueren Versionen in
die Datei /etc/shadow ausgelagert.
Die Datei /etc/passwd muss für alle User lesbar sein, denn sie ist
der einzige Ort,
an dem die Verbindung zwischen UserID und Usernamen hergestellt werden kann.
-rw-r--r-- ... /etc/passwd
Das wird praktisch bei jedem Aufruf von Programmen benötigt, die auch nur
irgendetwas mit Usernamen zu tun haben, sogar ein ls -l braucht also
diesen Zugriff. Wenn das verschlüsselte Passwort hier abgelegt wäre, so könnte ein
Angreifer die Datei lesen, das Passwort nehmen und über eine
brute force attack (Ausprobieren aller denkbaren Möglichkeiten) das Passwort
entschlüsseln. Das war der Grund für die Auslagerung.
Die Datei /etc/passwd ist eine Textdatei, die für jeden User eine Zeile
angelegt hat. Diese Zeile enthält verschiedene Felder, die durch einen
Doppelpunkt voneinander getrennt sind. Das Format ist:
Username:x:UserID:GruppenID:Beschreibung:Homeverzeichnis:Startshell
Dabei bedeuten die einzelnen Felder:
- Username
- Der Name des Users. Alphanumerische Zeichen.
- x
- Hier stand früher das verschlüsselte Passwort. Das x bedeutet, daß die
Passwort-Information jetzt in /etc/shadow ausgelagert wurde.
- UserID
- Die numerische UserID (UID). Eine einheitliche Nummer von 0 bis 65534.
Wenn mehrere User die selbe ID benutzen, dann sind sie aus der Sich des
Systems die selben User. Die UID 0 ist für den Systemverwalter
reserviert.
- GruppenID
- Die numerische GruppenID (GID) der Login-Gruppe des Users. Der User kann
noch Mitglied anderer Gruppen sein, diese Gruppe ist aber seine initiale
Gruppe, d.h. alle Dateien, die der User anlegt werden normalerweise die
Gruppenzugehörigkeit zu dieser Gruppe haben. (Ausnahme: Dateien, die in
Verzeichnissen angelegt werden, die eine andere Gruppenzugehörigkeit haben
und das SGID-Bit gesetzt haben)
- Beschreibung
- Hier kann eine kurze Beschreibung des Users stehen. Das Format ist
technisch gesehen frei wählbar. Inzwischen hat sich ein Standard
durchgesetzt, der die folgenden Informationen hier ablegt:
- Ausgeschriebener Name des Users (Vor- und Zuname)
- Büro-Raumnummer
- Telephonnummer Büro
- Telephonnummer Privat
- Sonstiges
Diese Informationen werden mit Kommata voneinander getrennt. Programme wie
finger greifen auf diese Information zu. Dieses Feld kann aber auch
leergelassen werden oder einfach nur eine Kurzbeschreibung beinhalten.
- Homeverzeichnis
- Das Verzeichnis des Users. Beim Login wird automatisch in dieses
Verzeichnis gewechselt.
-
- Startshell
- Die Shell, die beim Login gestartet werden soll. Hier wird bei normalen
Usern meist die /bin/bash oder /usr/bin/csh stehen. Ein Sonderfall sind
Useraccounts, die nötig sind um bestimmte Dienste anzubieten (z.B. Samba,
pop3, ...). Solche User sollen evt. keine Möglichkeit haben, sich regulär
einzuloggen. In einem solchen Fall wird hier zweckmäßigerweise /bin/false
eingetragen. Das ist ein Programm, das nichts tut, als einen Rückgabewert
von 1 zu produzieren. Wenn ein User diesen Eintrag hat, kann er sich nicht
einloggen, bzw. er kann schon, fliegt aber sofort wieder raus, weil seine
"Shell" sich sofort wieder verabschiedet.
Eine typische Zeile aus /etc/passwd könnte also folgendermaßen aussehen:
root:x:0:0:Hans Maier,1,089/12345,089/54321,Systemverwalter:/root:/bin/bash
Oft wird das Beschreibungsfeld gar nicht ausgefüllt oder nur mit einem
kurzen Namen versehen, dann wird es noch einfacher:
root:x:0:0::/root:/bin/bash
Wenn ein Feld also leergelassen wird, folgen die Doppelpunkte direkt
aufeinander.
Die Datei /etc/shadow
Nachdem das verschlüsselte Passwort jetzt nicht mehr in der Datei
/etc/passwd abgelegt wird, ist dazu eine andere Datei notwendig. Diese Datei
heißt /etc/shadow und birgt neben dem Passwort noch einige
Einstellmöglichkeiten, die sich alle um das Passwort drehen. Wie schon in
/etc/passwd handelt es sich um eine reine Textdatei, die für jeden User eine
Zeile veranschlagt. Wieder ist jede Zeile in Felder aufgeteilt, die durch
Doppelpunkte getrennt werden.
Die Datei /etc/passwd ist nicht lesbar für alle sondern meist nur
durch den Systemverwalter. Manche Distributionen legen eine Gruppe
shadow an, deren Mitglieder noch ein Leserecht auf diese Datei
haben, das ist aber nicht zwingend erforderlich. Ein Zugriffsrecht von
-rw------- ... /etc/shadow
ist völlig ausreichend.
Die interne Struktur jeder Zeile ist folgende:
Username:Passwort:Alter:min_Alter:max_Alter:Warnzeit:Pufferzeit:Ungültigkeit:Reserviert
Die Bedeutungen der einzelnen Felder sind:
- Username
- Der Username, genau so wie in /etc/passwd. Das ist sozusagen das
Schlüsselfeld des Datensatzes, mit dem die Verbindung zu den Zeilen aus
/etc/passwd hergestellt wird.
- Passwort
- Hier steht das verschlüsselte Passwort. Linux verschlüsselt seine
Passwörter mit einem nicht-reversiblen Verschlüsselungsmechanismus durch den
Systemaufruf crypt. Das Ergebnis ist immer eine 13-24-stellige
Zeichenkette, egal wie lange das eingegebene Passwort war. Wenn hier also
eine Zeichenkette steht, die nicht 13-24-stellig
ist, so existiert kein Passwort, das durch Aufruf von crypt in diese
Zeichenkette verschlüsselt werden würde. Damit ist der Eingang faktisch
gesperrt. Häufig steht hier z.B. ein einzelnes Sternchen (*) oder ein
Ausrufungszeichen (!). Das heißt, daß dieser Eingang verschlossen ist, es
existiert kein gültiges Passwort. Der Systemverwalter kann sich aber mit dem
Befehl su in diesen Benutzer verwandeln und unter seiner Effektiven
UID arbeiten. Steht in diesem Feld nichts, folgt also ein Doppelpunkt dem
nächsten, so gibt es kein Passwort, der Eingang ist frei, der User kann sich
ohne Nennung eines Passworts einloggen.
- Alter
- Hier stehen die Anzahl der Tage seit dem 1. Januar 1970 bis zu dem Tag,
an dem das Passwort das letzte Mal verändert wurde. Keine Angst, das müssen
Sie nicht selbst ausrechnen, das Programm passwd tut das für Sie und trägt
diese Zahl hier ein.
- min_Alter
- Das Mindestalter eines Passworts, bevor es geändert werden darf. Also
genau genommen, die Anzahl der Tage, die seit dem letzten Passwort-Wechsel
vergehen müssen, damit es erneut verändert werden darf. Das hat in der
Praxis eigentlich nur dann eine Bedeutung, wenn einem User verboten werden
soll, das Passwort zu ändern (z.B. wenn mehrere User sich einen Account
teilen). Wenn dieses Feld eine größere Zahl aufweist, als das nächste, dann
darf der User sein Passwort nie ändern.
- max_Alter
- Die maximale Anzahl von Tagen, bevor ein Passwort geändert werden muß.
Viele Hochsicherheitssysteme verlangen, daß die Passwörter regelmäßig
geändert werden müssen. Hier wird die Anzahl der Tage eingetragen, die
maximal zwischen zwei Wechseln des Passworts vergehen dürfen.
- Warnzeit
- Damit ein User merkt, das das Passwort bald geändert werden muß, kann
hier die Anzahl der Tage vor dem Ablauf der Gültigkeit eines Passworts
angegeben werden, ab der der User beim Login auf den baldigen Ablauf
hingewiesen wird.
- Pufferzeit
- Weil es sein kann, daß ein User ein paar Tage nicht eingeloggt war, kann
er womöglich die Warnmeldung nie gesehen haben, die ihn auf das baldige
Ablaufen des Passworts hingewiesen hätte. Hier kann man die Pufferzeit in
Tagen angeben, die nach dem Ablaufen des Passworts verstreichen darf, bevor
der Account tatsächlich ungültig wird.
- Ungültigkeit
- Dieses Feld wird nur für Accounts benötigt, die zeitlich befristet sind.
Hier steht die Anzahl von Tagen seit dem 1. Januar 1970, bis zu dem Tag, an
dem der Account ungültig wird. Auch dazu gibt es selbstverständlich
Programme, die diesen Wert in ein Datum umrechnen.
- Reserviert
- Ein reserviertes Feld für zukünftige Erweiterungen.
Ein minimaler Eintrag besteht nur aus dem Usernamen, gefolgt von 8
Doppelpunkten. Das wäre dann ein User, der sich ohne Passwort einloggen
darf. Die anderen Felder sind optional und können - je nach
Sicherheitsbedarf des Systems - gesetzt werden, wie gewünscht.
Die Datei /etc/group
Diese Datei enthält die Gruppeninformationen für die Usergruppen des
Systems. Sie ist - wie die anderen Dateien der Userverwaltung - wieder eine
Textdatenbank mit Feldern, die durch Doppelpunkte voneinander getrennt sind.
Jede Zeile beschreibt eine Gruppe.
Die Zeilen definieren die Mitglieder der Gruppen, die nicht die Login
Gruppen der User sind. Die Login-Gruppen-Mitgliedschaft ist in dieser Datei
also nicht verzeichnet.
Wie schon bei der Datei /etc/passwd, so gilt auch bei der Datei /etc/group,
daß sie für alle Welt lesbar sein muß. Daher sind wieder die Passwörter der
Gruppen in die Datei /etc/gshadow ausgelagert worden, deren Format gleich im
Anschluß besprochen wird. Wie in /etc/passwd, so steht im Passwort-Feld in
/etc/group heute einfach ein x.
Das Format der Zeilen in /etc/group ist:
Gruppenname:x:GruppenID:Liste der Mitglieder
Die Bedeutung der einzelnen Zeilen ist schnell erklärt:
- Gruppenname
- Der Name der Gruppe, wie er dann z.B. von ls -l ausgegeben wird.
- x
- Das Feld, in dem früher das Passwort stand.
- GruppenID
- Die numerische GruppenID (GID), die die Gruppe kennzeichnet. Die Datei
/etc/passwd referenziert die Login-Gruppen der Usereinträge z.B. mit dieser
Nummer.
- Liste der Mitglieder
- Eine durch Kommata getrennte Liste von Usernamen. User, die hier
aufgeführt sind, sind durch diesen Eintrag Mitglieder der jeweiligen Gruppe.
Die Gruppenmitgliedschaft der Login-Gruppe eines Users muß hier nicht
aufgeführt sein.
Gruppenmitgliedschaften sind oft nicht ganz richtig verstanden. Aus diesem
Grund folgt hier noch eine kurze Beschreibung der Mechanismen:
Jeder User kann Mitglied beliebig vieler Gruppen sein, hat aber immer genau
eine Login-Gruppenmitgliedschaft. Diese Login-Gruppenmitgliedschaft wird in
/etc/passwd definiert. Jede weitere Gruppenmitgliedschaft eines Users wird
in der Datei /etc/group definiert.
Die pure Mitgliedschaft in einer Gruppe gibt dem User die Rechte eines
Gruppenmitglieds auf Dateien, die dieser Gruppe zugehören. Es sind keine
weiteren Befehle nötig, um diese Rechte wahrzunehmen. Ein Beispiel:
Wenn der User foo Mitglied der Gruppen users, bar, foobar
und uucp ist, dann kann er alle folgenden Dateien lesen:
-rw-r----- 1 root users 294 Jul 29 2000 Datei1
-rw-r----- 1 root bar 294 Jul 29 2000 Datei2
-rw-rw---- 1 root foobar 294 Jul 29 2000 Datei3
-rw-r----- 1 root uucp 294 Jul 29 2000 Datei4
Die Datei Datei3 dürfte er sogar beschreiben.
Um diese Rechte auszuüben, muß der User foo keinerlei zusätzliche
Befehle wie newgrp oder ähnliches benutzen, er hat die Rechte einfach durch
die bloße Gruppenmitgliedschaft.
Wenn ein User eine Datei anlegt, dann bekommt diese Datei automatisch die
Gruppenzugehörigkeit zur Login-Gruppe des Users. Das kann durch Befehle wie
newgrp oder sg verändert werden.
Die Datei /etc/gshadow
Gruppenpasswörter werden nicht dazu benötigt, eine Gruppenmitgliedschaft zu
beweisen. Sie dienen nur dazu, einem User, der nicht Mitglied einer
bestimmten Gruppe ist, zeitweilig die Rechte eines Mitglieds zu geben. Dazu
muß er das Gruppenpasswort bekommen. Das wird nur sehr selten benötigt, denn
es ist ja nicht viel Aufwand, einen User zu einem Gruppenmitglied zu machen.
Auch wenn ein User selbst kein Passwort hat, aber die Gruppe, zu der er mit
newgrp wechseln will eines besitzt, muß es
angegeben werden.
Damit die Passwörter für Gruppen nicht einlesbar sind, werden sie wieder in
einer Datei abgelegt, die nicht für alle Welt lesbar ist. Diese Datei heißt
/etc/gshadow. Das Format dieser Datei ist wieder ähnlich wie bei
den
anderen besprochenen Dateien. Zeilen, die in Felder aufgeteilt sind, durch
Doppelpunkte voneinander getrennt. Das genaue Format ist:
Gruppenname:Passwort:Gruppenverwalter:Liste der Mitglieder
Die einzelnen Felder haben folgende Bedeutung:
- Gruppenname
- Der ausgeschriebene Name der Gruppe, wie er in /etc/group steht
- Passwort
- Das verschlüsselte Passwort der Gruppe. Steht hier eine Zeichenkette,
die kein gültiges verschlüsseltes Passwort darstellt, also eine nicht 13-24
stellige Zeichenkette, dann hat die Gruppe kein gültiges Passwort. Das
heißt, User, die nicht Mitglied der Gruppe sind, sich nicht mit newgrp zum
Gruppenmitglied erklären können.
- Gruppenverwalter
- Jede Gruppe kann einen User haben, der als Gruppenverwalter fungiert.
Ein
Gruppenverwalter darf
- Andere User in die Gruppe aufnehmen oder aus der Gruppe ausschließen.
- Das Gruppenpasswort ändern.
- Das Gruppenpasswort löschen.
In diesem Feld steht der Name des Gruppenverwalters der Gruppe, so wie er
auch in /etc/passwd aufgeführt ist.
- Liste der Mitglieder
- Eine Liste der Mitglieder der Gruppe, die sich mit newgrp zum Mitglied
der Gruppe machen dürfen. Diese Liste ist nicht zwansläufig deckungsgleich
mit der der gleichen Gruppe in /etc/group. Ein User, der Mitglied hier in
der Liste ist, aber nicht als Mitglied der Gruppe in /etc/shadow aufgeführt
ist, ist nicht automatisch Mitglied der Gruppe, kann sich aber ohne Nennung
eines Passworts mit newgrp zum Mitglied der Gruppe ernennen.
Der wichtigste Grund für die Verwendung der /etc/gshadow-Datei ist wohl der,
daß jede Gruppe einen eigenen Gruppenverwalter haben kann. Diese Tatsache
erleichtert das Leben des Systemverwalters, weil er sich nicht um alles
selbst kümmern muß.
Programme zum Umgang mit den User-/Gruppendatenbanken
Die Arbeiten an all diesen vier Dateien (passwd, shadow, group und gshadow)
können prinzipiell immer mit einem Texteditor wie dem vi vorgenommen werden,
es gibt aber auch viele wichtige Programme, die einem Systemverwalter die
zeitaufwendige Handarbeit ersparen und auch in Schleifen bestens dazu
geeignet sind, Veränderungen für viele User (oder Gruppen) automatisch
vorzunehmen. Dazu kommt, daß es Programme geben muß, mit deren Hilfe auch
Normaluser ihre Einstellungen verändern können, etwa ihr Passwort wechseln.
Diese Programme sollen hier noch kurz dargestellt werden. Ich habe - wo
immer es noch keine deutsche Handbuchseite gab - die jeweiligen
Handbuchseiten übersetzt und hier mit aufgenommen.
Die beste Art, diese Programme kennenzulernen, ist es, möglichst viel mit
ihnen herumzuspielen, neue User anzulegen, zu verändern, wieder zu löschen
usw. Nur die Praxis mit Programmen führt im Endeffekt zur Vertrautheit mit
dem Umgang...
Das Anlegen neuer User mit useradd
Das Programm useradd dient dazu, einen
neuen User anzulegen, ohne die Handarbeit mit Editoren auf den Dateien
passwd, shadow, group und gshadow. Wir haben oben schon gesehen, daß das
Format z.B. der Datumsangaben (Tage seit dem 1. Januar 1970) nicht unbedingt
geeignet ist, von Hand gesetzt zu werden. Das Programm useradd nimmt
uns diese Arbeit ab.
Die genaue Anwendung dieses Programms entnehmen Sie der Handbuchseite, hier nur noch ein paar Tipps
aus der Praxis:
Wenn mit useradd ein neuer User angelegt werden soll, dann reicht oft nur
die Angabe des Namens, weil die Voreinstellungen in der Regel sehr
vernünftige Werte beinhalten. Oft wird jedoch vergessen, daß das Programm
ohne die Option -m das Homeverzeichnis des Users nicht anlegt. Daran
sollten Sie denken.
Die Angabe eines Passwortes ist selten von Nöten. Wird useradd ohne Passwort
angegeben, so sperrt es den Account zunächst einmal durch ein ! im
Passwortfeld der Datei /etc/shadow. Später können Sie mit dem Programm
passwd ein Passwort vergeben.
Löschen von Usereinträgen mit userdel
Das Löschen von Useraccounts übernimmt das Programm userdel. Wird zusätzlich noch die Option
-r angegeben, so wird gleich das Homeverzeichnis des Users
mitgelöscht. Andere Dateien im System, die diesem User gehören werden nicht
gesucht. Hier muß "von Hand" gesucht werden, das nimmt uns userdel
nicht ab. Aber wir kennen ja jetzt das Programm find, mit dem wir solche Suchen in einem Rutsch
erledigen können...
Ändern von Usereinstellungen mit usermod
Um die ganzen Eigenschaften eines bereits bestehenden Users zu verändern
gibt es das Programm usermod. Hier können
die ganzen Einstellungen verändert werden, die wir schon beim Anlegen eines
Users angeben konnten. Zusätzlich kann auch der Name des Users noch
verändert werden.
Bei der Änderung verschiedener Eigenschaften kommt es aber immer wieder zu
Komplikationen, ein paar davon seien hier genannt:
- Ändern der UserID
Wird die UserID eines Users verändert, dann stimmen die Rechte des Users
nicht mehr. Denn die Rechte des Users auf Dateien werden ja über den Eintrag
der UID in der Inode bestimmt. Aus diesem Grund verändert usermod
zwar die UserID aller Dateien und Verzeichnisse innerhalb des
Homeverzeichnisses, jedoch nicht die der restlichen Dateien im System. Das
muß wiederum mit find erledigt werden.
- Ändern des Usernamens
Wird der Username geändert, so verändert sich damit nicht automatisch der
Name des Homeverzeichnisses. Das kann zu Inkonsistenzen führen, wenn es die
Regel ist, daß alle User ihre Homeverzeichnisse in
/home/Username vorfinden, nur der User Otto hat seins in
/home/maier... Es ist kein technisches Problem, aber das Leben wird
einfacher, wenn man sich an Prinzipien hält.
- Ändern des Homeverzeichnisses
Wenn also auch das Homeverzeichnis geändert werden soll, so darf nicht
vergessen werden, die Option -m mit anzugeben, sonst werden die
Dateien des alten Homeverzeichnisses nicht ins neue verschoben bzw. das neue
wird gar nicht erst angelegt.
Ändern der Passwort-Gültigkeit mit chage
Speziell für die Einträge in /etc/shadow existiert noch das
Programm chage, das entweder über
Kommandozeilenparameter oder - falls keine Parameter angegeben wurden -
interaktiv die Einstellungen dieser Werte erlaubt.
Ändern von Usereigenschaften mit passwd, newgrp, chsh und chfn
Alle drei Programme useradd, userdel und usermod sind
Werkzeuge des Systemverwalters und werden nur von ihm aufgerufen. Damit auch
Normaluser ein paar Dinge - zumindestens für ihren eigenen Account - ändern
dürfen gibt es noch ein paar Programme, deren Aufgaben sich zum Teil mit
denen der drei letztgenannten überschneiden -
passwd,
newgrp,
chsh und
chfn.
Diese Programme ändern alle (mit Ausnahme von newgrp) verschiedene
Einstellungen in einer oder
mehreren der vier oben beschriebenen Dateien passwd, shadow, group und
gshadow. Die genaue Anwendung entnehmen Sie wiederum den Handbuchseiten.
Hier eine kurze Beschreibung, was die einzelnen Programme anbieten und was
Normaluser damit anstellen können:
- passwd
Mit diesem Programm kann ein Normaluser sein Passwort ändern. Ein Verwalter
einer Gruppe kann damit zusätzlich auch das Gruppenpasswort dieser Gruppe
ändern, der Systemverwalter kann alle Passwörter aller User und Gruppen
ändern.
- newgrp
Mit diesem Kommando kann ein User kurzfristig seine Logingruppe wechseln.
Das heißt, daß Dateien, die er anlegt jetzt zu dieser neuen Gruppe gehören,
statt zur eigentlichen Logingruppe des Users. Wenn der User selbst nicht
Mitglied der gewünschten Gruppe ist, jedoch das Gruppenpasswort kennt, so
kann er nach der Eingabe des Gruppenpassworts trotzdem kurzfristig Mitglied
dieser Gruppe werden. Dieses Programm ändert nichts an den Systemdateien,
beim nächsten Einloggen ist alles so wie vorher.
- chsh
Jeder User kann mit diesem Programm den Eintrag der Startshell in seinem
Useraccount in /etc/passwd ändern. Dieses Programm ändert nur diesen
Eintrag, erst durch ein Logout mit anschließendem erneuten Login wird die
Änderung spürbar. Damit ein User nicht jedes beliebige Programm hier
eintragen kann, muß die gewünschte Shell in /etc/shells aufgelistet
sein. Der Systemverwalter kann mit diesem Programm jedem User eine andere
Startshell zuweisen.
- chfn
Jede Zeile der /etc/passwd enthält ein Kommentarfeld, in dem verschiedene
Informationen über einen User eingegeben werden können. Jeder User kann
diese Informationen selbst ändern oder löschen (mit Ausnahme eines Feldes).
Dazu benutzt er das Programm chfn (CHange Full Name).
Selbstverständlich kann ein Normaluser damit nur das Feld seiner eigenen
Zeile ändern, der Systemverwalter kann aber damit die Einträge aller User
editieren.
Die beiden letzten Programme arbeiten auch interaktiv. Wenn keinerlei
Parameter angegeben werden, so fragen diese Programme die Angaben ab.
Verwaltung der Gruppen
Die Aufgaben zum Verwalten von Gruppen entsprechen im Wesentlichen denen zur
Verwaltung der User. Und so existieren für den Systemverwalter (und nur für
ihn) hier genau die drei Befehle, die wir für die Userverwaltung schon
hatten:
- groupadd
Zum Anlegen von Gruppen
- groupmod
Zum Ändern der bestehenden Eigenschaften der Gruppen
- groupdel
Zum Löschen von Gruppen.
Mit der Einführung der Shadow-Gruppen, also der verschlüsselten Speicherung
der Gruppenpasswörter in der Datei /etc/gshadow hielt eine andere
Neuerung ihren Einzug, die Möglichkeit, daß bestimmte User zu
Gruppenadministratoren werden. Ein Gruppenadministrator hat bestimmte Rechte
für die Gruppe, deren Verwalter er ist. Er kann
- User in eine Gruppe als Mitglied aufnehmen
- Mitglieder einer Gruppe von der Gruppenmitgliedschaft ausschließen
- Gruppenpasswörter setzen, verändern und löschen.
Für diese Aufgabe steht ihm das Programm
gpasswd
zur Verfügung. Dieses Programm ist prinzipiell für zwei Aufgabenbereiche
geeignet:
- Der Systemverwalter kann damit den Gruppenverwalter bestimmen.
- Der Gruppenverwalter kann damit die oben genannten Aufgaben erledigen.
Und schließlich gibt es noch das Programm
groups, das jeder User dazu nutzen kann,
herauszufinden in welchen Gruppen er eigentlich Mitglied ist. Dieses
Programm ist eigentlich nur ein Shellscript, das wiederum den Befehl
id nutzt. Id ist ein Programm, mit dem
herausgefunden werden kann, welche UserID, GruppenIDs usw ein User besitzt.
Überprüfung der Konsistenz mit pwck und grpck
Da all diese Verwaltungsaufgaben für die oben beschriebenen User- und
Gruppendateien viel Aufwand ist, gibt es noch die Programme
pwck (Password-Check) und
grpck (Group-Check), die die interne
Konsistenz dieser Dateien überprüfen. Diese Programme sind naturgemäß
Werkzeuge des Systemverwalters, da außer ihm niemand die shadow-Dateien
lesen darf.
Konvertierung der User- und Gruppendatenbanken
In seltenen Fällen kann es notwendig sein, die Passwort- und
Gruppendatenbanken entweder von der alten (shadow-losen) Version in die
moderne (shadow-basierte) Version zu konvertieren oder umgekehrt. Zu diesem
Zweck stehen uns die folgenden Programme zur Verfügung:
pwconv |
Konvertiert die alte /etc/passwd Datei in eine passwd/shadow
Kombination. |
---|
pwunconv |
Konvertiert eine moderne passwd/shadow Kombination in eine alte
passwd Datei. |
---|
grpconv |
Konvertiert die alte /etc/group Datei in eine group/gshadow
Kombination. |
---|
grpunconv |
Konvertiert eine moderne group/gshadow Kombination in eine alte
group Datei. |
---|