107.1 Lektion 2
Zertifikat: |
LPIC-1 |
---|---|
Version: |
5.0 |
Thema: |
107 Administrative Aufgaben |
Lernziel: |
107.1 Benutzer- und Gruppenkonten und dazugehörige Systemdateien verwalten |
Lektion: |
2 von 2 |
Einführung
Die in der vorangegangenen Lektion besprochenen Werkzeuge der Kommandozeile und die von jeder Distribution bereitgestellten grafischen Anwendungen für die gleichen Aufgaben aktualisieren eine Reihe von Dateien, in denen Informationen über Benutzer und Gruppen gespeichert sind.
Diese Dateien befinden sich im Verzeichnis /etc/
und sind:
/etc/passwd
-
Eine Datei mit sieben durch Doppelpunkte getrennten Feldern mit grundlegenden Informationen über Benutzer.
/etc/group
-
Eine Datei mit vier durch Doppelpunkte getrennten Feldern mit grundlegenden Informationen über Gruppen.
/etc/shadow
-
Eine Datei mit neun durch Doppelpunkte getrennten Feldern mit den verschlüsselte Benutzerpasswörtern.
/etc/gshadow
-
Eine Datei mit vier durch Doppelpunkte getrennten Feldern mit den verschlüsselten Gruppenpasswörtern.
Obwohl diese vier Dateien im Klartext vorliegen, sollten Sie diese nicht direkt bearbeiten, sondern immer mit den von der jeweiligen Distribution bereitgestellten Werkzeugen.
/etc/passwd
Dies ist eine weltweit lesbare Datei mit einer Liste von Benutzern, jeder in einer eigenen Zeile. Jede Zeile besteht aus sieben durch Doppelpunkte getrennten Feldern:
- Benutzername
-
Der Name, mit dem sich der Benutzer am System anmeldet.
- Passwort
-
Das verschlüsselte Passwort (oder ein
x
, wenn Shadow-Passwörder verwendet werden). - User ID (UID)
-
Die dem Benutzer vom System zugewiesene ID.
- Gruppen-ID (GID)
-
Die primäre Gruppennummer des Benutzers im System.
- GECOS
-
Ein optionales Kommentarfeld für zusätzliche Informationen über den Benutzer (z.B. den vollständigen Namen). Das Feld kann mehrere kommagetrennte Einträge enthalten.
- Homeverzeichnis
-
Der absolute Pfad des Homeverzeichnisses des Benutzers.
- Shell
-
Der absolute Pfad des Programms, das automatisch gestartet wird, wenn sich der Benutzer am System anmeldet (normalerweise eine interaktive Shell wie
/bin/bash
).
/etc/group
Dies ist eine weltweit lesbare Datei mit einer Liste von Gruppen, jede in einer eigenen Zeile. Jede Zeile enthält vier durch Doppelpunkte getrennte Felder:
- Gruppename
-
Der Name der Gruppe.
- Gruppenpasswort
-
Das verschlüsselte Passwort der Gruppe (oder ein
x
, wenn Shadow-Passwörter verwendet werden). - Group ID (GID)
-
Die der Gruppe vom System zugewiesene ID.
- Mitgliederliste
-
Eine durch Kommata getrennte Liste von Benutzern, die zu dieser Gruppe gehören, mit Ausnahme derer, für die dies die primäre Gruppe ist.
/etc/shadow
Diese Datei kann nur von root und von Benutzern mit Root-Rechten gelesen werden. Sie enthält die verschlüsselten Benutzerpasswörter, jedes in einer eigenen Zeile. Jede Zeile besteht aus neun durch Doppelpunkte getrennten Feldern:
- Benutzername
-
Der Name, mit dem sich ein Benutzer am System anmeldet.
- Verschlüsseltes Passwort
-
Das verschlüsselte Passwort des Benutzers (wenn der Wert mit
!
beginnt, ist das Konto gesperrt). - Datum der letzten Passwortänderung
-
Das Datum der letzten Passwortänderung als Anzahl der Tage seit dem 01.01.1970 (ein Wert von 0 bedeutet, dass der Benutzer das Passwort bei der nächsten Anmeldung ändern muss).
- Mindestalter für das Passwort
-
Die minimale Anzahl von Tagen, die nach einer Passwortänderung vergehen muss, bevor der Benutzer das Passwort erneut ändern darf.
- Maximales Passwortalter
-
Die maximale Anzahl von Tagen, die vergehen darf, bevor eine Passwortänderung erforderlich ist.
- Passwortwarnfrist
-
Die Anzahl der Tage, die der Benutzer gewarnt wird, bevor das Passwort abläuft und geändert werden muss.
- Passwort-Inaktivität
-
Die Anzahl der Tage nach Ablauf eines Kennworts, in denen der Benutzer das Kennwort aktualisieren muss — andernfalls wird das Konto deaktiviert.
- Ablaufdatum des Kontos
-
Anzahl der Tage seit dem 01.01.1970, nach denen das Benutzerkonto deaktiviert wird (ein leeres Feld bedeutet, dass das Benutzerkonto nie abläuft).
- Reserviertes Feld
-
Ein Feld, das für zur künftigen Verwendung reserviert ist.
/etc/gshadow
Diese Datei ist nur für root und Benutzer mit Root-Rechten lesbar. Sie enthält verschlüsselte Gruppenpasswörter, jedes in einer eigenen Zeile. Jede Zeile besteht aus vier durch Doppelpunkte getrennten Feldern:
- Gruppenname
-
Der Name der Gruppe.
- Verschlüsseltes Passwort
-
Das verschlüsselte Passwort für die Gruppe. Darüber kann ein Benutzer, der nicht Mitglied der Gruppe ist, der Gruppe mit dem Befehl
newgrp
beitreten — wenn das Kennwort mit!
beginnt, darf niemand mitnewgrp
der Gruppe beitreten. - Gruppenadministratoren
-
Eine kommagetrennte Liste der Administratoren der Gruppe, die das Passwort der Gruppe ändern und mit dem Befehl
gpasswd
Gruppenmitglieder hinzufügen oder entfernen können. - Gruppenmitglieder
-
Eine kommagetrennte Liste der Mitglieder der Gruppe.
Passwort- und Gruppendatenbanken filtern
Oft sind die in diesen vier Dateien gespeicherten Informationen über Benutzer und Gruppen zu überprüfen und nach bestimmten Datensätzen zu durchsuchen. Für diese Aufgabe können Sie den Befehl grep
verwenden oder cat
und grep
miteinander verketten.
# grep emma /etc/passwd emma:x:1020:1020:User Emma:/home/emma:/bin/bash # cat /etc/group | grep db-admin db-admin:x:1050:grace,frank
Eine weitere Möglichkeit, auf diese Datenbanken zuzugreifen, ist der Befehl getent
. Er dient allgemein dazu, Einträge aus Datenbanken anzuzeigen, die von den Name Service Switch (NSS)-Bibliotheken unterstützt werden — er benötigt den Namen der Datenbank und einen Suchschlüssel. Ist kein Schlüsselargument angegeben, zeigt er alle Einträge in der angegebenen Datenbank an, es sei denn, die Datenbank unterstützt keine Aufzählung. Sind ein oder mehrere Schlüsselargumente angegeben, wird die Datenbank entsprechend gefiltert.
# getent passwd emma emma:x:1020:1020:User Emma:/home/emma:/bin/bash # getent group db-admin db-admin:x:1050:grace,frank
Für den Befehl getent
sind keine Root-Rechte erforderlich. Sie müssen lediglich die Datenbank lesen können, aus der Datensätze abgerufen werden sollen.
Note
|
|
Geführte Übungen
-
Betrachten Sie die folgende Ausgabe und beantworten Sie folgende Fragen:
# cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:User Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:User Kevin:/home/kevin:/bin/bash # cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' root:x:0: mail:x:8: db-admin:x:1015:emma,grace app-developer:x:1016:catherine,dave,christian # cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: # cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' root:*:: mail:*:: db-admin:!:emma:emma,grace app-developer:!::catherine,dave,christian
-
Wie lauten die Benutzer-ID (UID) und die Gruppen-ID (GID) von
root
undcatherine
? -
Wie lautet der Name der primären Gruppe von
kevin
? Gibt es weitere Mitglieder in dieser Gruppe? -
Welche Shell ist für
mail
eingestellt? Was bedeutet das? -
Wer sind die Mitglieder der Gruppe
app-developer
? Welche dieser Mitglieder sind Gruppenadministratoren und welche sind normale Mitglieder?Wie lang ist die minimale Lebensdauer des Passworts für
catherine
? Und was ist die maximale Lebensdauer des Passworts? -
Wie lang ist die Inaktivitätsdauer des Passworts für
kevin
?
-
-
Welche IDs werden per Konvention den Systemkonten und welche den normalen Benutzern zugewiesen?
-
Wie finden Sie heraus, ob ein Benutzerkonto, das zuvor auf das System zugreifen konnte, nun gesperrt ist? Ihr System verwendet Shadow-Passwörter.
Offene Übungen
-
Erstellen Sie ein Benutzerkonto namens
christian
mit dem Befehluseradd -m
und ermitteln Sie dessen Benutzer-ID (UID), Gruppen-ID (GID) und Shell. -
Ermitteln Sie den Namen der primären Gruppe von
christian
. Was können Sie daraus ableiten? -
Prüfen Sie mit dem Befehl
getent
die Informationen zur Kennwortalterung für das Benutzerkontochristian
. -
Fügen Sie die Gruppe
editor
zu den sekundären Gruppen vonchristian
hinzu. Nehmen Sie an, dass diese Gruppe bereitsemma
,dave
undfrank
als normale Mitglieder enthält. Wie prüfen Sie, dass es keine Administratoren für diese Gruppe gibt? -
Führen Sie den Befehl
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
aus und beschreiben Sie die Ausgabe in Bezug auf die Dateiberechtigungen. Welche dieser vier Dateien sind aus Sicherheitsgründen shadowed? Ihr System verwendet Shadow-Passwörter.
Zusammenfassung
In dieser Lektion haben Sie gelernt:
-
Der Speicherort von Dateien mit Informationen über Benutzer und Gruppen.
-
Verwalten von Benutzer- und Gruppeninformationen, die in Passwort- und Gruppendatenbanken gespeichert sind.
-
Abrufen von Informationen aus Passwort- und Gruppendatenbanken.
Die folgenden Dateien und Befehle wurden in dieser Lektion besprochen:
/etc/passwd
-
Die Datei mit grundlegenden Informationen über Benutzer.
/etc/group
-
Die Datei mit grundlegenden Informationen über Gruppen.
/etc/shadow
-
Die Datei mit den verschlüsselten Benutzerpasswörtern.
/etc/gshadow
-
Die Datei mit den verschlüsselten Gruppenpasswörtern.
getent
-
Filtert die Passwort- und Gruppendatenbanken.
Lösungen zu den geführten Übungen
-
Beobachten Sie die folgende Ausgabe und beantworten Sie folgende Fragen:
cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:Benutzer Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:Benutzer Kevin:/home/kevin:/bin/bash cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' Wurzel:x:0: mail:x:8: db-admin:x:1015:emma,grace app-entwickler:x:1016:catherine,dave,christian cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' Wurzel:*:: mail:*:: db-admin:!:emma:emma,grace app-entwickler:!::catherine,dave,christian
-
Wie lauten die Benutzer-ID (UID) und die Gruppen-ID (GID) von
root
undcatherine
?Die UID und GID von
root
sind 0 und 0, während die UID und GID voncatherine
1030 und 1025 sind. -
Wie lautet der Name der primären Gruppe von
kevin
? Gibt es weitere Mitglieder in dieser Gruppe?Der Gruppenname lautet
db-admin
. Auchemma
undgrace
sind in dieser Gruppe. -
Welche Shell ist für
mail
eingestellt? Was bedeutet das?mail
ist ein Systembenutzerkonto und seine Shell ist/sbin/nologin
. Tatsächlich werden Systembenutzerkonten wiemail
,ftp
,news
unddaemon
für administrative Aufgaben verwendet und daher sollte die normale Anmeldung für diese Konten verhindert werden. Aus diesem Grund wird die Shell normalerweise auf/sbin/nologin
oder/bin/false
gesetzt. -
Was sind die Mitglieder der Gruppe
app-developer
? Welche davon sind Gruppenadministratoren und welche sind normale Mitglieder?Die Mitglieder sind
catherine
,dave
undchristian
— alle sind ordentliche Mitglieder.Wie lang ist die minimale Lebensdauer des Passworts für
catherine
? Und was ist die maximale Lebensdauer des Passworts?Die minimale Passwortlebensdauer beträgt 20 Tage, die maximale beträgt 90 Tage.
-
Wie lang ist die Inaktivitätsdauer des Passworts für
kevin
?Die Inaktivitätsperiode des Passworts beträgt 2 Tage. Während dieser Zeit sollte
kevin
das Passwort aktualisieren, sonst wird das Konto deaktiviert.
-
-
Welche IDs werden per Konvention den Systemkonten und welche den normalen Benutzern zugewiesen?
Systemkonten haben in der Regel UIDs unter 100 oder zwischen 500 und 1000, während normale Benutzer UIDs haben, die bei 1000 beginnen, obwohl einige Altsysteme die Nummerierung bei 500 beginnen können. Der Benutzer
root
hat die UID 0. Denken Sie daran, dass die WerteUID_MIN
undUID_MAX
in/etc/login.defs
den Bereich der UIDs definieren, der für die Erstellung von normalen Benutzern verwendet wird. Aus der Sicht von LPI Linux Essentials und LPIC-1 haben Systemkonten UIDs kleiner als 1000 und normale Benutzer UIDs größer als 1000. -
Wie finden Sie heraus, ob ein Benutzerkonto, das zuvor auf das System zugreifen konnte, nun gesperrt ist? Ihr System verwendet Shadow-Passwörter.
Wenn Shadow-Passwörter verwendet werden, enthält das zweite Feld in
/etc/passwd
für jedes Benutzerkonto das Zeichenx
, da die verschlüsselten Benutzerpasswörter in/etc/shadow
gespeichert werden. Insbesondere wird das verschlüsselte Passwort eines Benutzerkontos im zweiten Feld dieser Datei gespeichert — wenn es mit einem Ausrufezeichen beginnt, ist das Konto gesperrt.
Lösungen zu den offenen Übungen
-
Erstellen Sie ein Benutzerkonto namens
christian
mit dem Befehluseradd -m
und ermitteln Sie dessen Benutzer-ID (UID), Gruppen-ID (GID) und Shell.# useradd -m christian # cat /etc/passwd | grep christian christian:x:1050:1060::/home/christian:/bin/bash
Die UID und GID von
christian
sind 1050 bzw. 1060 (das dritte und vierte Feld in/etc/passwd
)./bin/bash
ist die für dieses Benutzerkonto eingestellte Shell (das siebte Feld in/etc/passwd
). -
Ermitteln Sie den Namen der primären Gruppe von
christian
. Was können Sie daraus ableiten?# cat /etc/group | grep 1060 christian:x:1060:
Der Name der primären Gruppe von
christian
istchristian
(das erste Feld in/etc/group
). Deshalb wirdUSERGROUPS_ENAB
in/etc/login.defs
auf yes gesetzt, damituseradd
standardmäßig eine Gruppe mit dem gleichen Namen des Benutzerkontos erstellt. -
Prüfen Sie mit dem Befehl
getent
die Informationen zur Kennwortalterung für das Benutzerkontochristian
.# getent shadow christian christian:!:18015:0:99999:7:::
Für das Benutzerkonto
christian
ist das Kennwort nicht gesetzt, und es ist nun gesperrt (das zweite Feld in/etc/shadow
enthält ein Ausrufezeichen). Es gibt kein minimales und maximales Passwortalter für dieses Benutzerkonto (das vierte und fünfte Feld in/etc/shadow
sind auf 0 und 99999 Tage gesetzt), während die Passwortwarnperiode auf 7 Tage gesetzt ist (das sechste Feld in/etc/shadow
). Schließlich gibt es keine Inaktivitätsperiode (das siebte Feld in/etc/shadow
) und das Konto läuft nie ab (das achte Feld in/etc/shadow
). -
Fügen Sie die Gruppe
editor
zu den sekundären Gruppen vonchristian
hinzu. Nehmen Sie an, dass diese Gruppe bereitsemma
,dave
undfrank
als normale Mitglieder enthält. Wie prüfen Sie, dass es keine Administratoren für diese Gruppe gibt?# cat /etc/group | grep editor editor:x:1100:emma,dave,frank # usermod -a -G editor christian # cat /etc/group | grep editor editor:x:1100:emma,dave,frank,christian # cat /etc/gshadow | grep editor editor:!::emma,dave,frank,christian
Das dritte und vierte Feld in
/etc/ghadow
enthalten Administratoren und normale Mitglieder für die angegebene Gruppe. Da das dritte Feld füreditor
leer ist, gibt es also keine Administratoren für diese Gruppe (emma
,dave
,frank
undchristian
sind alle einfache Mitglieder). -
Führen Sie den Befehl
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
aus und beschreiben Sie die Ausgabe, die Sie in Bezug auf die Dateiberechtigungen erhalten. Welche dieser vier Dateien sind aus Sicherheitsgründen verdeckt? Angenommen, Ihr System verwendet Shadow-Passwörter.# ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow -rw-r--r-- 1 root root 853 mag 1 08:00 /etc/group -rw-r----- 1 root shadow 1203 mag 1 08:00 /etc/gshadow -rw-r--r-- 1 root root 1354 mag 1 08:00 /etc/passwd -rw-r----- 1 root shadow 1563 mag 1 08:00 /etc/shadow
Die Dateien
/etc/passwd
und/etc/group
sind weltweit lesbar und werden aus Sicherheitsgründen verdeckt. Wenn Shadow-Passwörter verwendet werden, sehen Sie einx
im zweiten Feld dieser Dateien, weil die verschlüsselten Passwörter für Benutzer und Gruppen in/etc/shadow
und/etc/gshadow
gespeichert werden, die nur von root und in dem vorliegendem System sogar nur von Mitgliedern der Gruppeshadow
lesbar sind.