Benutzer- und Gruppenverwaltung ist ein zentraler Bestandteil der Systemadministration unter Linux. Jeder Benutzer auf einem Linux-System hat ein eigenes Benutzerkonto mit spezifischen Rechten, Verzeichnissen und Dateien. Gruppen helfen, Berechtigungen für mehrere Benutzer zu verwalten und den Zugriff auf bestimmte Ressourcen zu steuern.
In diesem Tutorial lernen Sie, wie Sie Benutzer- und Gruppenkonten auf einem Linux-System verwalten und welche Systemdateien wichtig sind, um diese Konfigurationen zu speichern.
1. Systemdateien für Benutzer und Gruppen
Zunächst werfen wir einen Blick auf die wichtigsten Dateien, die für die Verwaltung von Benutzern und Gruppen verantwortlich sind:
1.1 /etc/passwd
Die Datei /etc/passwd
speichert Informationen über Benutzerkonten. Jede Zeile in dieser Datei repräsentiert einen Benutzer.
Beispielzeile in /etc/passwd:
username:x:1000:1000:User Name,,,:/home/username:/bin/bash
username
: Der Benutzername.x
: Platzhalter für das verschlüsselte Passwort (das eigentliche Passwort ist in/etc/shadow
gespeichert).1000
: Die User ID (UID), eine eindeutige Identifikationsnummer für den Benutzer.1000
: Die Group ID (GID), die Standardgruppe des Benutzers.User Name
: Ein Feld für die Beschreibung des Benutzers (optional)./home/username
: Das Home-Verzeichnis des Benutzers./bin/bash
: Die Standard-Shell des Benutzers (z.B./bin/bash
,/bin/sh
).
1.2 /etc/shadow
Die Datei /etc/shadow
speichert die verschlüsselten Passwörter der Benutzer und zusätzliche Informationen über die Passwortpolitik. Sie ist aus Sicherheitsgründen nur für den root-Benutzer lesbar.
Beispielzeile in /etc/shadow:
username:$6$randomhash$3AbK...:18453:0:99999:7:::
username
: Der Benutzername.$6$randomhash$...
: Das verschlüsselte Passwort (mit SHA-512 verschlüsselt).18453
: Das Datum des letzten Passwortwechsels (als Tage seit dem 1. Januar 1970).0
: Minimale Anzahl der Tage vor dem nächsten Passwortwechsel.99999
: Maximale Anzahl der Tage, die ein Passwort gültig ist.7
: Anzahl der Tage vor Ablauf, an denen der Benutzer gewarnt wird.
1.3 /etc/group
Die Datei /etc/group
speichert Informationen über Gruppen auf dem System. Jede Zeile repräsentiert eine Gruppe.
Beispielzeile in /etc/group:
groupname:x:1000:username1,username2
groupname
: Der Name der Gruppe.x
: Platzhalter für ein verschlüsseltes Passwort (wird normalerweise nicht verwendet).1000
: Die Group ID (GID).username1,username2
: Benutzer, die Mitglieder dieser Gruppe sind.
2. Benutzerverwaltung
2.1 Benutzer hinzufügen
Um einen neuen Benutzer hinzuzufügen, verwenden Sie das useradd
-Kommando. Dabei werden alle relevanten Daten in den oben genannten Dateien automatisch eingetragen.
Beispiel:
sudo useradd -m -s /bin/bash username
-m
: Erstellt automatisch das Home-Verzeichnis für den Benutzer.-s /bin/bash
: Legt die Standard-Shell für den Benutzer fest (z.B./bin/bash
).
Nach dem Hinzufügen eines Benutzers muss ein Passwort gesetzt werden:
sudo passwd username
2.2 Benutzer entfernen
Um einen Benutzer zu löschen, verwenden Sie das userdel
-Kommando.
Beispiel:
sudo userdel username
Wenn Sie auch das Home-Verzeichnis und die persönlichen Dateien des Benutzers löschen möchten, verwenden Sie den -r
-Parameter:
sudo userdel -r username
2.3 Benutzerinformationen ändern
Das usermod
-Kommando wird verwendet, um die Eigenschaften eines vorhandenen Benutzers zu ändern. Zum Beispiel, um den Benutzer einer neuen Gruppe hinzuzufügen oder das Home-Verzeichnis zu ändern.
Beispiel, um einen Benutzer zu einer neuen Gruppe hinzuzufügen:
sudo usermod -aG groupname username
-aG
: Fügt den Benutzer einer Gruppe hinzu, ohne die bisherigen Gruppenmitgliedschaften zu löschen.
Beispiel, um das Home-Verzeichnis zu ändern:
sudo usermod -d /new/home/directory username
3. Gruppenverwaltung
3.1 Gruppe hinzufügen
Das groupadd
-Kommando wird verwendet, um eine neue Gruppe auf dem System anzulegen.
Beispiel:
sudo groupadd groupname
3.2 Gruppe entfernen
Um eine Gruppe zu löschen, verwenden Sie das groupdel
-Kommando.
Beispiel:
sudo groupdel groupname
3.3 Benutzer zu Gruppen hinzufügen
Wie bereits in der Benutzerverwaltung gezeigt, können Sie Benutzer zu Gruppen hinzufügen, indem Sie usermod -aG
verwenden.
Beispiel, um einen Benutzer zu einer bestehenden Gruppe hinzuzufügen:
sudo usermod -aG groupname username
3.4 Liste der Gruppen eines Benutzers anzeigen
Um herauszufinden, in welchen Gruppen ein Benutzer Mitglied ist, verwenden Sie das groups
-Kommando.
Beispiel:
groups username
4. Berechtigungen und Dateizugriff
Unter Linux basieren die Dateiberechtigungen auf Benutzern und Gruppen. Jede Datei oder jedes Verzeichnis hat einen Besitzer (Benutzer) und eine Gruppe. Es gibt drei Arten von Berechtigungen:
- Lesen (r): Die Datei kann gelesen werden.
- Schreiben (w): Die Datei kann geändert oder gelöscht werden.
- Ausführen (x): Die Datei kann ausgeführt werden (bei ausführbaren Dateien oder Skripten).
Sie können mit dem ls -l
Befehl die Berechtigungen einer Datei oder eines Verzeichnisses anzeigen.
Beispielausgabe:
-rwxr-xr-- 1 username groupname 4096 Jan 12 14:00 datei.txt
rwx
: Rechte des Eigentümers (lesen, schreiben, ausführen).r-x
: Rechte der Gruppe (lesen und ausführen, aber nicht schreiben).r--
: Rechte für andere Benutzer (nur lesen).
4.1 Berechtigungen ändern
Verwenden Sie das chmod
-Kommando, um die Berechtigungen einer Datei oder eines Verzeichnisses zu ändern.
Beispiel, um die Datei schreibgeschützt für alle außer dem Besitzer zu machen:
chmod 744 datei.txt
7
: Volle Rechte für den Besitzer (lesen, schreiben, ausführen).4
: Nur Leserechte für die Gruppe.4
: Nur Leserechte für andere Benutzer.
4.2 Besitzer und Gruppe ändern
Mit chown
können Sie den Besitzer und die Gruppe einer Datei ändern.
Beispiel, um den Besitzer einer Datei zu ändern:
sudo chown newuser datei.txt
Beispiel, um sowohl Besitzer als auch Gruppe zu ändern:
sudo chown newuser:newgroup datei.txt
5. Standardkonfiguration für neue Benutzer: /etc/skel
Die Datei /etc/skel
enthält Vorlagendateien, die in das Home-Verzeichnis eines neu erstellten Benutzers kopiert werden. Wenn Sie also möchten, dass alle neuen Benutzer bestimmte Dateien oder Konfigurationsdateien erhalten, können Sie sie in /etc/skel
ablegen.
Beispiel:
sudo cp .bashrc /etc/skel/
Dies stellt sicher, dass alle neu erstellten Benutzer eine Kopie der .bashrc
-Datei in ihrem Home-Verzeichnis haben.
Fazit
Die Verwaltung von Benutzern und Gruppen unter Linux ist eine der Kernaufgaben der Systemadministration. Mit den Befehlen useradd
, usermod
, groupadd
und chown
können Sie Benutzerkonten und Gruppen effizient verwalten und Berechtigungen für Dateien und Verzeichnisse anpassen. Durch die Kenntnis der Systemdateien /etc/passwd
, /etc/shadow
und /etc/group
haben Sie eine solide Grundlage, um das Verhalten des Systems zu verstehen und anzupassen.