107.1 Lektion 1
Zertifikat: |
LPIC-1 |
---|---|
Version: |
5.0 |
Thema: |
107 Administrative Aufgaben |
Lernziel: |
107.1 Benutzer- und Gruppenkonten und dazugehörige Systemdateien verwalten |
Lektion: |
1 von 2 |
Einführung
Die Benutzer- und Gruppenverwaltung ist ein wichtiger Arbeitsbereich eines jeden Systemadministrators. Moderne Linux-Distributionen implementieren grafische Oberflächen, mit denen alle Aktivitäten in diesem Zusammenhang schnell und einfach zu verwalten sind. Diese Oberflächen unterscheiden sich voneinander im Design, aber die Funktionen sind die gleichen. Diese Tools zeigen lokale Benutzer und Gruppen an, bearbeiten diese, fügen neue hinzu und löschen sie. Eine erweiterte Verwaltung ist jedoch nur über die Befehlszeile sinnvoll.
Benutzerkonten hinzufügen
Unter Linux fügen Sie ein neues Benutzerkonto mit dem Befehl useradd
hinzu. Mit Root-Rechten legen Sie z.B. ein neues Standardbenutzerkonto namens michael
mit folgendem Befehl an:
# useradd michael
Wenn Sie den Befehl useradd
ausführen, werden die in den Passwort- und Gruppendatenbanken gespeicherten Benutzer- und Gruppeninformationen für das neu erstellte Benutzerkonto aktualisiert und, falls angegeben, auch das Heimatverzeichnis des neuen Benutzers erstellt. Darüber hinaus wird eine Gruppe mit demselben Namen des neuen Benutzerkontos angelegt.
Ist der neue Benutzer erstellt, kann dessen Passwort mit dem Befehl passwd
festlegt werden. Benutzer-ID (UID), Gruppen-ID (GID) und die Gruppen, denen er angehört, überprüfen die Befehle id
und groups
:
# passwd michael Changing password for user michael. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. # id michael uid=1000(michael) gid=100(michael) groups=100(michael) # groups michael michael : michael
Note
|
Denken Sie daran, dass jeder Benutzer seine UID, GID und die Gruppen, denen er angehört, mit den Befehlen |
Die wichtigsten Optionen für den Befehl useradd
lauten:
-c
-
Erstellt ein neues Benutzerkonto mit individuellen Anmerkungen (z.B. dem vollständigen Namen des Benutzers).
-d
-
Erstellt ein neues Benutzerkonto mit einem eigenen Homeverzeichnis.
-e
-
Erstellt ein neues Benutzerkonto mit einem Datum, zu dem es deaktiviert wird.
-f
-
Erstellt ein neues Benutzerkonto mit der Anzahl der Tage, nach der das Passwort ungültig wird und vom Benutzer neu gesetzt werden muss (andernfalls wird das Konto deaktiviert).
-g
-
Erstellt ein neues Benutzerkonto mit einer bestimmten GID.
-G
-
Erstellt ein neues Benutzerkonto, das zu mehreren sekundären Gruppen hinzufügt wird.
-k
-
Erstellt ein neues Benutzerkonto durch Kopieren der Skelettdateien aus einem bestimmten Verzeichnis (diese Option ist nur gültig, wenn auch die Option
-m
oder--create-home
angegeben ist). -m
-
Erzeugt ein neues Benutzerkonto samt Homeverzeichnis (falls nicht bereits vorhanden).
-M
-
Legt ein neues Benutzerkonto ohne Homeverzeichnis an.
-s
-
Erstellt ein neues Benutzerkonto mit einer bestimmten Login-Shell.
-u
-
Erstellt ein neues Benutzerkonto mit einer bestimmten UID.
Die vollständige Liste der Optionen finden Sie in den Manpages für den Befehl useradd
.
Benutzerkonten konfigurieren
Manchmal müssen Sie ein Attribut eines bestehenden Benutzerkontos ändern, z.B. den Anmeldenamen, die Login-Shell, das Ablaufdatum des Passworts usw. In solchen Fällen ist der Befehl usermod
behilflich:
# usermod -s /bin/tcsh michael # usermod -c "Michael User Account" michael
Genau wie der Befehl useradd
erfordert auch der Befehl usermod
Root-Rechte.
In den obigen Beispielen wird zuerst die Login-Shell von michael
geändert und dann eine kurze Beschreibung zu diesem Benutzerkonto hinzugefügt. Denken Sie daran, dass Sie mehrere Attribute in einem einzigen Befehl ändern können.
Die wichtigsten Optionen für den Befehl usermod
sind:
-c
-
Fügt dem angegebenen Benutzerkonto einen kurzen Kommentar hinzu.
-d
-
Ändert das Homeverzeichnis des angegebenen Benutzerkontos. In Verbindung mit der Option
-m
wird der Inhalt des aktuellen Homeverzeichnisses in das neue Homeverzeichnis verschoben, das erstellt wird, sofern es noch nicht existiert. -e
-
Legt das Ablaufdatum des angegebenen Benutzerkontos fest.
-f
-
Legt die Anzahl der Tage fest, nach der ein Passwort ungültig wird und der Benutzer es aktualisieren muss (andernfalls wird das Konto deaktiviert).
-g
-
Ändert die primäre Gruppe des angegebenen Benutzerkontos (die Gruppe muss existieren).
-G
-
Fügt dem angegebenen Benutzerkonto sekundäre Gruppen hinzu. Jede Gruppe muss existieren und von der nächsten durch ein Komma getrennt sein (ohne Leerzeichen). Falls als einzige gesetzt, entfernt diese Option alle bestehenden Gruppen, zu denen der Benutzer gehört, während sie in Verbindung mit der Option
-a
neue sekundäre Gruppen zu den bestehenden ergänzt. -l
-
Ändert den Anmeldenamen des angegebenen Benutzerkontos.
-L
-
Sperrt das angegebene Benutzerkonto. Dies setzt ein Ausrufezeichen vor das verschlüsselte Passwort in der Datei
/etc/shadow
und verhindert so den Zugriff mittels Passwort für diesen Benutzer. -s
-
Ändert die Login-Shell des angegebenen Benutzerkontos.
-u
-
Ändert die UID des angegebenen Benutzerkontos.
-U
-
Entsperrt das angegebene Benutzerkonto. Dadurch wird das Ausrufezeichen vor dem verschlüsselten Passwort in der Datei
/etc/shadow
entfernt.
Die vollständige Liste der Optionen finden Sie in den Manpages für den Befehl usermod
.
Tip
|
Denken Sie daran, auch das Homeverzeichnis des Benutzers und andere benutzerbezogene Objekte wie Maildateien umzubenennen, wenn Sie den Anmeldenamen eines Benutzerkontos ändern. Ähnliche Überlegungen gelten, wenn Sie die UID eines Benutzerkontos ändern: Sie sollten dann wahrscheinlich auch die Eigentumsrechte von Dateien und Verzeichnissen außerhalb des Homeverzeichnisses des Benutzers anpassen (die Benutzer-ID wird automatisch für das Postfach des Benutzers und für alle Dateien geändert, die dem Benutzer gehören und sich im Homeverzeichnis des Benutzers befinden). |
Benutzerkonten löschen
Ein Benutzerkonto löschen Sie mit userdel
. Genauer gesagt, aktualisiert dieser Befehl die in den Kontodatenbanken gespeicherten Informationen und löscht alle Einträge für den angegebenen Benutzer. Die Option -r
entfernt auch das Homeverzeichnis des Benutzers samt Inhalt sowie dessen Mail-Spool. Andere Dateien müssen gesucht und gelöscht werden.
# userdel -r michael
Wie bei useradd
und usermod
benötigen Sie zum Löschen von Benutzerkonten Root-Rechte.
Gruppen hinzufügen, ändern und löschen
Wie bei der Benutzerverwaltung können Sie mit Root-Rechten über die Befehle groupadd
, groupmod
und groupdel
Gruppen hinzufügen, ändern und löschen. Um eine neue Gruppe namens developer
zu erstellen, geben Sie folgenden Befehl ein:
# groupadd -g 1090 developer
Die Option -g
erstellt eine Gruppe mit einer spezifischen GID.
Warning
|
Denken Sie daran, dass beim Hinzufügen eines neuen Benutzerkontos die primäre Gruppe und die sekundären Gruppen, zu denen das Konto gehört, existieren müssen, bevor Sie den Befehl |
Wollen Sie die Gruppe von developer
in web-developer
umbenennen und ihre GID ändern, gehen Sie wie folgt vor:
# groupmod -n web-developer -g 1050 developer
Tip
|
Denken Sie daran, bei einer Änderung der GID mit der Option |
Um schließlich die Gruppe web-developer
zu löschen, führen Sie folgenden Befehl aus:
# groupdel web-developer
Sie können eine Gruppe nicht löschen, wenn sie die primäre Gruppe eines Benutzerkontos ist. Daher müssen Sie den Benutzer vor der Gruppe entfernen. Wie bei Benutzern bleiben auch beim Löschen einer Gruppe die zu dieser Gruppe gehörenden Dateien im Dateisystem bestehen und werden nicht gelöscht oder einer anderen Gruppe zugewiesen.
Das Skelett-Verzeichnis
Wenn Sie ein neues Benutzerkonto hinzufügen und dabei auch dessen Homeverzeichnis erstellen, wird dieses mit Dateien und Ordnern bestückt, die aus dem Skeleton- oder Skelett-Verzeichnis (standardmäßig /etc/skel
) kopiert werden. Die Idee dahinter ist einfach: Ein Systemadministrator möchte, dass neue Benutzer die gleichen Dateien und Verzeichnisse in ihrem Homeverzeichnis vorfinden. Um also die Dateien und Ordner, die automatisch im Homeverzeichnis neuer Benutzerkonten angelegt werden, anzupassen, müssen Sie diese neuen Dateien und Ordner zum Skelett-Verzeichnis hinzufügen.
Tip
|
Denken Sie daran den Befehl |
Die Datei /etc/login.defs
Unter Linux gibt die Datei /etc/login.defs
die Konfigurationsparameter an, die die Erstellung von Benutzern und Gruppen steuern. Außerdem übernehmen die in den vorherigen Abschnitten gezeigten Befehle Standardwerte aus dieser Datei.
Die wichtigsten Angaben lauten:
UID_MIN
undUID_MAX
-
Der Bereich der Benutzer-IDs, die neuen normalen Benutzern zugewiesen werden können.
GID_MIN
undGID_MAX
-
Der Bereich der Gruppen-IDs, die neuen gewöhnlichen Gruppen zugewiesen werden können.
CREATE_HOME
: Gibt an, ob für neue Benutzer standardmäßig ein Homeverzeichnis erstellt wird. USERGROUPS_ENAB
-
Gibt an, ob das System standardmäßig eine neue Gruppe gleichen Namens für jedes neue Benutzerkonto erstellt und ob beim Löschen des Benutzerkontos auch die primäre Gruppe des Benutzers entfernt wird, falls diese keine Mitglieder mehr enthält.
MAIL_DIR
-
Das Mail-Spool-Verzeichnis.
PASS_MAX_DAYS
-
Die maximale Anzahl von Tagen, die ein Passwort verwendet werden darf.
PASS_MIN_DAYS
-
Die minimale Anzahl von Tagen, die zwischen Passwortänderungen erlaubt sind.
PASS_MIN_LEN
-
Die minimale akzeptable Passwortlänge.
PASS_WARN_AGE
-
Die Anzahl der Warntage, bevor ein Passwort abläuft.
Tip
|
Wenn Sie Benutzer und Gruppen verwalten, sollten Sie diese Datei immer überprüfen, um das Standardverhalten des Systems zu kennen und gegebenenfalls zu ändern. |
Der Befehl passwd
Der Befehl wird in erster Linie verwendet, um das Passwort eines Benutzers zu ändern. Wie bereits beschrieben, kann jeder Benutzer sein eigenes Kennwort ändern, aber nur root das Kennwort jedes Benutzers, weil der Befehl passwd
das SUID-Bit gesetzt hat (ein s
anstelle des Ausführungsbit für den Besitzer), was bedeutet, dass er mit den Rechten des Besitzers der Datei (also root) ausgeführt wird.
# ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 42096 mag 17 2015 /usr/bin/passwd
Über Optionen von passwd
können Sie Details zur Dauer des Passworts steuern:
-d
-
Löscht das Passwort eines Benutzerkontos (und deaktiviert damit den Benutzer).
-e
-
Zwingt dazu, das Passwort für das Benutzerkonto zu ändern.
-i
-
Bestimmt die Anzahl der Tage nach Ablauf eines Passworts, innerhalb derer der Benutzer das Passwort aktualisieren muss (andernfalls wird das Konto deaktiviert).
-l
-
Sperrt das Benutzerkonto (dem verschlüsselten Passwort wird in der Datei
/etc/shadow
ein Ausrufezeichen vorangestellt). -n
-
Bestimmt die Mindestanzahl an Tagen zwischen Passwortänderungen.
-S
-
Liefert Informationen über den Passwortstatus eines Benutzerkontos.
-u
-
Entsperrt das Benutzerkonto (das Ausrufezeichen wird aus dem Passwortfeld in der Datei
/etc/shadow
entfernt). -x
-
Bestimmt die maximale Anzahl an Tagen, die ein Passwort gültig bleibt.
-w
-
Legt die Anzahl der Tage fest, die der Benutzer vor Ablauf des Passworts gewarnt wird.
Note
|
Auch Gruppen können ein Passwort haben, das Sie mit dem Befehl |
Der Befehl chage
Der Befehl chage
(für “change age”) dient dazu, Informationen zum Ablauf eines Passworts zu ändern. Der Befehl ist root vorbehalten — mit Ausnahme der Option -l
, die auch normale Benutzer verwenden können, um die Passwortinformationen ihres eigenen Kontos aufzulisten.
Weitere Optionen für den Befehl chage
sind:
-d
-
Legt die letzte Passwortänderung für ein Benutzerkonto fest.
-E
-
Legt das Ablaufdatum für ein Benutzerkonto fest.
-I
-
Legt die Anzahl der Tage der Inaktivität nach Ablauf eines Passworts fest, innerhalb derer der Benutzer das Passwort aktualisieren muss (sonst wird das Konto deaktiviert).
-m
-
Legt die minimale Passwortlebensdauer in Tagen für ein Benutzerkonto fest.
-M
-
Legt die maximale Passwortlebensdauer in Tagen für ein Benutzerkonto fest.
-W
-
Legt die Anzahl der Tage fest, die der Benutzer vor Ablauf des Passworts gewarnt wird.
Geführte Übungen
-
Geben Sie für jeden der folgenden Befehle den entsprechenden Zweck an:
usermod -L
passwd -u
chage -E
groupdel
useradd -s
groupadd -g
userdel -r
usermod -l
groupmod -n
useradd -m
-
Geben Sie für jeden der folgenden
passwd
-Befehle den entsprechendenchage
-Befehl an:passwd -n
passwd -x
passwd -w
passwd -i
passwd -S
-
Erläutern Sie den jeweiligen Zweck der Befehle in der vorherigen Frage.
-
Mit welchen Befehlen können Sie ein Benutzerkonto sperren? Und mit welchen Befehlen, können Sie es wieder entsperren?
Offene Übungen
-
Erstellen Sie als root mit dem Befehl
groupadd
die Gruppenadministrators
unddevelopers
. -
Nachdem Sie diese Gruppen erstellt haben, führen Sie den folgenden Befehl aus:
useradd -G administrators,developers kevin
. Welche Operationen führt dieser Befehl aus? Nehmen Sie an, dassCREATE_HOME
undUSERGROUPS_ENAB
in/etc/login.defs
aufyes
gesetzt sind. -
Erstellen Sie eine neue Gruppe namens
designers
, benennen Sie diese inweb-designers
um und fügen Sie diese neue Gruppe zu den sekundären Gruppen des Benutzerkontoskevin
hinzu. Identifizieren Sie alle Gruppen, zu denenkevin
gehört, und deren IDs. -
Entfernen Sie nur die Gruppe
developers
aus den sekundären Gruppen vonkevin
. -
Legen Sie das Passwort für das Benutzerkonto
kevin
fest. -
Überprüfen Sie mit dem Befehl
chage
zunächst das Ablaufdatum des Benutzerkontoskevin
und ändern Sie es dann auf den 31. Dezember 2022. Welchen anderen Befehl können Sie zum Ändern des Ablaufdatums eines Benutzerkontos verwenden? -
Fügen Sie ein neues Benutzerkonto namens
emma
mit der UID 1050 hinzu und legen Sieadministrators
als primäre Gruppe unddevelopers
undweb-designers
als sekundäre Gruppen fest. -
Ändern Sie die Login-Shell von
emma
in/bin/sh
. -
Löschen Sie die Benutzerkonten
emma
undkevin
sowie die Gruppenadministrators
,developers
undweb-designers
.
Zusammenfassung
In dieser Lektion haben Sie gelernt:
-
Die Grundlagen der Benutzer- und Gruppenverwaltung in Linux.
-
Wie Benutzerkonten hinzufügt, geändert und entfernt werden.
-
Wie Gruppenkonten hinzufügt, geändert und entfernt werden.
-
Pflegen des Skeleton-Verzeichnisses.
-
Bearbeitung der Datei, die die Erstellung von Benutzern und Gruppen steuert.
-
Ändern von Passwörtern der Benutzerkonten.
-
Ändern von Passwortalterungsinformationen von Benutzerkonten.
Die folgenden Dateien und Befehle wurden in dieser Lektion besprochen:
useradd
-
Erstellen ein neues Benutzerkontos.
usermod
-
Modifizieren eines Benutzerkontos.
userdel
-
Löschen eines Benutzerkontos.
groupadd
-
Erstellen eines neuen Gruppenkontos.
groupmod
-
Modifizieren eines Gruppenkontos.
groupdel
-
Löschen eines Gruppenkontos.
passwd
-
Passwort eines Benutzerkontos ändern und Passwortalterung verwalten.
chage
-
Informationen zum Ablauf eines Benutzerpassworts ändern.
/etc/skel
-
Standardspeicherort des Skelett-Verzeichnisses.
/etc/login.defs
-
Die Datei, welche die Erstellung von Benutzern und Gruppen steuert und Standardwerte für verschiedene Benutzerkontoparameter bereitstellt.
Lösungen zu den geführten Übungen
-
Geben Sie für jeden der folgenden Befehle den entsprechenden Zweck an:
usermod -L
Sperren des Benutzerkontos
passwd -u
Entsperren des Benutzerkontos
chage -E
Verfallsdatum für das Benutzerkonto festlegen
groupdel
Löschen der Gruppe
useradd -s
Anlegen eines neuen Benutzerkontos mit einer bestimmten Login-Shell
groupadd -g
Anlegen einer neuen Gruppe mit einer bestimmten GID
userdel -r
Entfernen eines Benutzerkontos und aller Dateien in dessen Homeverzeichnis, des Homeverzeichnisses selbst sowie des Mail-Spool des Benutzers
usermod -l
Ändern des Anmeldenamens des Benutzerkontos
groupmod -n
Namensänderung einer Gruppe
useradd -m
Anlegen eines neuen Benutzerkontos und dessen Homeverzeichnisses
-
Geben Sie für jeden der folgenden
passwd
-Befehle den entsprechendenchage
-Befehl an:passwd -n
chage -m
passwd -x
chage -M
passwd -w
chage -W
passwd -i
chage -I
passwd -S
chage -l
-
Erläutern Sie den jeweiligen Zweck der Befehle in der vorherigen Frage.
Unter Linux können Sie mit dem Befehl
passwd -n
(oderchage -m
) die minimale Anzahl von Tagen zwischen Passwortänderungen festlegen, mit dem Befehlpasswd -x
(oderchage -M
)die maximale Anzahl von Tagen, die ein Passwort gültig ist. Der Befehlpasswd -w
(oderchage -W
) legt die Anzahl von Tagen fest, die ein Benutzer vor Ablauf des Passwort gewarnt wird. Mitpasswd -i
(oderchage -I
) bestimmen Sie die Anzahl von Tagen der Inaktivität, in denen der Benutzer das Passwort ändern muss, undpasswd -S
(oderchage -l
) zeigt Informationen über das Passwort des Benutzerkontos an. -
Mit welchen Befehlen können Sie ein Benutzerkonto sperren? Und mit welchen Befehlen, können Sie es wieder entsperren?
Um ein Benutzerkonto zu sperren, nutzen Sie einen der folgenden Befehle:
usermod -L
,usermod --lock
oderpasswd -l
. Um es zu entsperren, wählen Sieusermod -U
,usermod --unlock
oderpasswd -u
.
Lösungen zu den offenen Übungen
-
Erstellen Sie als root mit dem Befehl
groupadd
die Gruppenadministrators
unddevelopers
.# groupadd administrators # groupadd developers
-
Nachdem Sie nun diese Gruppen erstellt haben, führen Sie den folgenden Befehl aus:
useradd -G administrators,developers kevin
. Welche Operationen führt dieser Befehl aus? Nehmen Sie an, dassCREATE_HOME
undUSERGROUPS_ENAB
in/etc/login.defs
aufyes
gesetzt sind.Der Befehl fügt einen neuen Benutzer namens
kevin
zur Liste der Benutzer im System hinzu, erstellt sein Homeverzeichnis (CREATE_HOME
ist aufyes
gesetzt und daher können Sie die Option-m
vernachlässigen) und erstellt eine neue Gruppe namenskevin
als primäre Gruppe dieses Benutzerkontos (USERGROUPS_ENAB
ist ebenfalls aufyes
gesetzt). Schließlich werden die im Skeleton-Verzeichnis enthaltenen Dateien und Ordner in das Homeverzeichnis vonkevin
kopiert. -
Erstellen Sie eine neue Gruppe namens
designers
, benennen Sie diese inweb-designers
um und fügen Sie diese neue Gruppe zu den sekundären Gruppen des Benutzerkontoskevin
hinzu. Identifizieren Sie alle Gruppen, zu denenkevin
gehört, und deren IDs.# groupadd designers # groupmod -n web-designers designers # usermod -a -G web-designers kevin # id kevin uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1029(developers),1031(web-designers)
-
Entfernen Sie nur die Gruppe
developers
aus den sekundären Gruppen vonkevin
.# usermod -G administrators,web-designers kevin # id kevin uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1031(web-designers)
Der Befehl
usermod
verfügt über keine Option zum Entfernen nur einer Gruppe; daher müssen Sie alle sekundären Gruppen angeben, zu denen der Benutzer gehört. -
Legen Sie das Passwort für das Benutzerkonto
kevin
fest.# passwd kevin Changing password for user kevin. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
-
Überprüfen Sie mit dem Befehl
chage
zunächst das Ablaufdatum des Benutzerkontoskevin
und ändern Sie es dann auf den 31. Dezember 2022. Welchen anderen Befehl können Sie zum Ändern des Ablaufdatums eines Benutzerkontos verwenden?# chage -l kevin | grep "Account expires" Account expires : never # chage -E 2022-12-31 kevin # chage -l kevin | grep "Account expires" Account expires : dec 31, 2022
Der Befehl
usermod
mit der Option-e
ist äquivalent zuchage -E
. -
Fügen Sie ein neues Benutzerkonto namens
emma
mit der UID 1050 hinzu und legen Sieadministrators
als primäre Gruppe unddevelopers
undweb-designers
als sekundäre Gruppen fest.# useradd -u 1050 -g administrators -G developers,web-designers emma # id emma uid=1050(emma) gid=1028(administrators) groups=1028(administrators),1029(developers),1031(web-designers)
-
Ändern Sie die Login-Shell von
emma
in/bin/sh
.# usermod -s /bin/sh emma
-
Löschen Sie die Benutzerkonten
emma
undkevin
sowie die Gruppenadministrators
,developers
undweb-designers
.# userdel -r emma # userdel -r kevin # groupdel administrators # groupdel developers # groupdel web-designers