Benutzer-, Gruppenkonten und Systemdateien verwalten

Wichtung: 4

Beschreibung: Die Kandidaten sollen in der Lage sein, Benutzerkonten hinzuzufügen, zu löschen, zu deaktivieren und zu verändern.

Wichtigste Wissensgebiete:
Hinzufügen, Verändern oder Löschen von Benutzern und Gruppen.
Benutzer- und Gruppeninformationen in den Passwort/Gruppen-Datenbanken verwalten.
Richtige Handhabung der Shadow-Passwort/Gruppen-Datenbanken mit den passenden Tools.
Anlegen und Verwalten von speziellen und eingeschränkten Benutzerkonten.

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
chage
gpasswd
groupadd
groupdel
groupmod
passwd
useradd
userdel
usermod

Grundlagen Benutzerverwaltung

Einer der wichtigsten Aufgaben eines Linux-Systemadministrators ist die Benutzer- bzw. Gruppenverwaltung. Auf einem Linux-System existieren Benutzer, welche wiederum mindestens einer Gruppe angehören.

Ähnlich wie bei der Namensauflösung von Internet-Adressen besitzen die Benutzer eine eindeutige User-ID (UID), welche die Benutzer eindeutig identifizieren. Hierbei kann eine beliebige UID zwischen 0 und 65535 gewählt werden, wobei die UID 0 dem Superuser (root) zugewiesen ist.

/etc/passwd - Benutzerinformationen

Früher wurden in der Datei /etc/passwd neben den Benutzerinformationen auch das verschlüsselte Passwort festgelegt. Da aber die Datei /ect/passwd für jeden Benutzer lesbar sein muss, da so gut wie alle Programme darauf zugreifen, um Benutzerinformationen zu bekommen, war dies eine große Sicherheitslücke. Aus diesem Grund werden Benutzerinformationen in der Datei /etc/passwd und das zugehörige Passwort in der Datei /etc/shadow gespeichert.

Die Datei /etc/passwd besteht aus Zeilen. Jede Zeile enthält verschiedene Felder, die durch einen Doppelpunkt voneinander getrennt sind. Die Syntax ist folgende:

Username:x:UID:GroupID:Beschreibung:Home-Verzeichnis:Startshell

Username, UID, GroupID, Home-Verzeichnis und Startshell sollten klar sein. Das X im zweiten Feld bedeutet, dass sich das Passwort in der Datei /etc/shadow befindet. In der Beschreibung hat sich ein inoffizieller Standard festgesetzt. Hier werden durch Kommata getrennt wichtige Daten wie Telefonnummer oder kompletter Name notiert. Beispiel:

chef:x:34:5:Peter Mustermann,1,0561/777888,Projektleiter:/home/chef:/bin/bash

/etc/shadow - Passworteinstellungen

In der Datei /etc/shadow werden Einstellungen zum Passwort gespeichert:

Username:Passwort:Alter:min_Alter:max_Alter:Warnzeit:Pufferzeit:Ungültigkeit:Reserviert 

Username = Benutzer, wie er in /etc/passwd steht
Passwort = Verschlüsseltes Passwort
Alter = Tag der letzten Änderung des Passworts
min_Alter = Das Mindestalter eines Passworts, bevor es geändert werden darf
max_Alter = Die maximale Anzahl von Tagen, bevor ein Passwort geändert werden muss
Warnzeit = Zeit vor dem Zwang zum Ändern des Passworts, in der eine Warnung gegeben wird.
Pufferzeit = Zeit, bevor der Account deaktiviert wird, nachdem das Passwort abgelaufen ist.
Ungültigkeit = Deaktiviert Account
Reserviert = Reserviert für zukünftige Erweiterungen

Beispiel:

chef:$1$RXbNLkU8$XULLOGFVs6LTxmSRqCS.P/:12872:0:99999:7:::

/etc/group - Gruppeninformationen

Die Datei /etc/group hat im Prinzip dieselbe Funktion wie die /etc/passwd, nur dass sie für Gruppen anstatt Benutzer zuständig ist. Syntax der /etc/group ist folgende:

Groupname:x:GroupID:Members

Beispiel:

lpadmin:x:101:root

/etc/gshadow

Nur der Benutzer root besitzt Lese- und Schreibrechte auf die Datei /etc/gshadow, welche die Passwort-Datei für die Datei /etc/group ist. Die vier Felder der Datei werden durch einen Doppelpunkt (:) voneinander getrennt. Die Syntax ist folgende:

Gruppenname:Passwort:Gruppenverwalter:Liste der Mitglieder

Gruppenname — Der Name der Gruppe.
Verschlüsseltes Passwort — Das verschlüsselte Passwort für die Gruppe. Wenn festgesetzt, ermöglicht es Benutzern, die nicht einer bestimmtenGruppe angehören, der Gruppe beizutreten, indem der Befehl newgrp benutzt wird. Wenn der Wert des Feldes ! ist, ist es keinem Benutzer erlaubt mittels dem newgrp-Befehl auf eine Gruppe zuzugreifen. !! besitzt den selben Wert wie ! — zeigt jedoch gleichzeitig an, dass niemals zuvor ein Passwort bestimmt worden ist. Sollte der Wert null sein, so haben nur Gruppenmitglieder Zugang zur Gruppe.
Gruppenadministratoren — Hier aufgelistete Gruppenmitglieder können Gruppenmitglieder hinzufügen oder entfernen mittels demgpasswd -Befehl.
Gruppenmitglieder — Hier aufgelistete Gruppenmitglieder sind reguläre, nicht-administrative Mitglieder der Gruppe.

Beispiel:

audio:!!:admin2:juan,bob,peter

useradd - Benutzer anlegen

Mit dem Befehl useradd werden neue Benutzer angelegt. Wichtige Optionen sind:

-c = Kommentarfeld in /etc/passwd
-d = Homeverzeichnis festlegen
-e = Das Datum, an dem der Useraccount ungültig werden soll.
-g = Standard-Gruppe (Primär-Gruppe)
-G group,[...] = Liste weiterer Gruppen
-m = Automatisches Anlegen des Homelaufwerks
-p = Passwort
-s = Loginshell des Users.
-u = UserID

userdel - Benutzer löschen

Mit dem Befehl userdel können Benutzer gelöscht werden. Wird zusätzlich noch die Option -r angegeben, so wird gleich das Homeverzeichnis des Users mitgelöscht.

usermod - Benutzer verändern

Benutzereinstellungen von bestehenden Benutzern können mit dem Befehl usermod verändert werden. Die wichtigsten Optionen im Überblick:

-l = Neuer Benutzername
-ul = Neue UID
-gl = Neue GID
-cl = Neuer Kommentareintrag
-dl = Neues Heimatverzeichnis
-sl = Neue Login-Shell
-ol = Erlaubt mehrfache Nutzung von UIDs
-ml = Neues Heimatverzeichnis wird angelegt und alte Dateien rüberkopiert

chage - Gültigkeit von Passwörtern

chage ändert die Informationen über die Gültigkeit eines Userpassworts

passwd - Passwörter ändern.

Mit dem Programm passwd 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.

gpasswd - Gruppenmitglieder und Passwörter ändern.

gpasswd verändert Gruppenmitgliedschaft und setzt Passwörter, um Nicht-Gruppenmitgliedern, die das Gruppenpasswort kennen, zu ermöglichen, sich der Gruppe anzuschließen. Es wird auch dazu benutzt, Gruppenadministratoren festzulegen. Es gibt folgende Optionen

-a = Gruppenmitglieder aufnehmen
-d = Gruppenmitglieder entfernen
-r = Gruppenpasswort löschen

groupadd - Gruppen hinzufügen

Fügt Gruppen hinzu, jedoch ohne Zuordnung von Benutzern. Die Option -g ermöglicht die Angabe der GroupID. Die Programme useradd und usermod sollten für die Zuordnung von Benutzern zu einer bestehenden Gruppe verwendet werden.

groupdel - Gruppen löschen

Das Programm groupdel löscht vorhandene Gruppen.

groupmod - Gruppen ändern

Mit dem Befehl groupmod kann man bestehende Gruppen modifizieren. Es gibt folgende Optionen:

-g = GroupID ändern
-n = Gruppenname ändern

Weitere Quellen

http://www.linux-user.de/ausgabe/2005/05/090-zubefehl/
Linux-Wiki