Benutzerverwaltung unter Linux

Benutzerverwaltung unter Linux

tl;dr

# Erstellen von Gruppen
sudo groupadd developers
 
# Erstellen von Benutzern und Zuweisen zu Gruppen
sudo useradd -m -s /bin/bash User
 
# Den User `User` der Nebengruppe `developers` hinzufügen
sudo usermod -aG developers User
 
# Setzen des Passworts 
sudo passwd User
 
# Überblick verschaffen über Nutzer und Gruppen
getent passwd # Einträge der Datei passwd (User)
getent group # Einträge der Datei group (Gruppen)
 
# User wieder löschen
sudo userdel -r User

Benutzer

  • Linux ist ein Mehrbenutzer-Betriebssystem.
  • Das bedeutet, dass mehrere Benutzer gleichzeitig auf einem System arbeiten können.
  • Jeder Benutzer hat ein eigenes Konto mit spezifischen Rechten und Privilegien.

Gruppen

  • Jeder Benutzer ist einer Hauptgruppe zugeordnet
  • kann daneben aber auch Mitglied weiterer Gruppen sein.
  • Der Zugriff auf gewisse Hardware oder Dienste ist auf die Mitglieder einer bestimmten Gruppe beschränkt.
  • Jede Datei ist immer Eigentum genau eines Benutzers.
  • Daneben ist den Dateien aber auch eine Gruppe zugeordnet.

Benutzerverwaltung:

  • fassen Benutzer mit ähnlichen Rollen oder Verantwortlichkeiten zusammenfassen
  • ermöglichen Administratoren, Berechtigungen kollektiv auf eine Gruppe von Benutzern anzuwenden.

Ressourcenzugriff:

  • erleichtern den kontrollierten Zugriff auf Dateien, Verzeichnisse und Systemressourcen.
  • Berechtigungen können auf Gruppenebene zugewiesen werden, was eine effiziente Ressourcenverwaltung sicherstellt.

Zusammenarbeit:

  • Gruppen verbessern die Zusammenarbeit, indem sie es Benutzern mit gemeinsamen Zielen ermöglichen, nahtlos zusammenzuarbeiten.
  • Gruppenzugehörigkeiten vereinfachen den Prozess der Zugriffsgewährung auf gemeinsame Projektdateien.

Sicherheit:

  • Sicherheitsrichtlinien können auf Gruppenebene durchgesetzt werden, was einen detaillierten Ansatz zur Systemsicherheit gewährleistet.
  • Gruppenbasierte Berechtigungen tragen zu einer sicheren und gut organisierten Linux-Umgebung bei.

Gruppen anlegen/ ändern/ löschen

Befehl Aktion
sudo groupadd gruppe Fügt Gruppe hinzu
sudo groupmod -n neuername gruppe Ändert Namen einer Gruppe
sudo groupdel gruppe Löscht eine Gruppe

Benutzerkonten

  • Root-Benutzer: Der Administrator des Systems mit vollen Rechten. Dieser Benutzer kann alle Dateien und Einstellungen ändern.
  • Normale Benutzer: Diese Benutzer haben eingeschränkte Rechte und können nur auf ihre eigenen Dateien und bestimmte freigegebene Ressourcen zugreifen.

Benutzer anlegen

sudo useradd -m -s /bin/bash benutzername

Option Aktion
-m sorgt dafür, dass ein Home-Verzeichnis für den neuen Benutzer erstellt wird
-s Nutzer nutzt bash als Konsole
-G fügt den neu erstellten Nutzer direkt der Nebengruppe GRUPPE hinzu

Passwort setzen

Nach dem Anlegen eines Benutzers muss ein Passwort gesetzt werden:

sudo passwd benutzername

Benutzer modifizieren

sudo usermod -g gruppe benutzername

Befehl Aktion
-g gruppe benutzername ändert die Hauptgruppe des Users
-aG gruppe benutzername fügt den Benutzer einer Nebengruppe hinzu, ohne ihn aus anderen Gruppen zu entfernen
-G gruppe benutzername ändert die Nebengruppe des Users
-l neuername benutzername kann der Name eines Benutzers geändert werden

Benutzer aus Gruppen entfernen mit gpasswd

Der Befehl gpasswd wird sowohl für das Hinzufügen als auch das Entfernen von Usern zu Gruppen verwendet.

Hinzufügen

gpasswd -a -a für “add”

sudo gpasswd -a benutzername gruppenname
Entfernen

gpasswd -d -d für “delete”

sudo gpasswd -d benutzername gruppenname

Benutzer und Gruppen anzeigen

Befehl Rückgabe
getent passwd user:password:uid:gid:user name or comment field:home directory:shell
getent group group:password:gid:users

/etc/passwd

Die Einträge in der Datei /etc/passwd sind für die Verwaltung von Benutzerkonten auf einem Linux-System wichtig. Jeder Eintrag enthält Informationen zu einem einzelnen Benutzer und ist durch Doppelpunkte (:) getrennt. Ein typischer Eintrag sieht so aus:

 > getent passwd
 benutzername:passwort:benutzer_id:gruppen_id:gefullname:home_verzeichnis:shell
Hier ist eine detaillierte Erklärung der einzelnen Felder:

  1. benutzername: Der Name des Benutzers (z. B. “root”, “john”).
  2. passwort: Ein verschlüsseltes Passwort (historisch gesehen war hier das Passwort gespeichert, aber aus Sicherheitsgründen wird heutzutage oft ein “x” oder “*” angezeigt, und die Passwörter werden in der Datei /etc/shadow gespeichert).
  3. benutzer_id (UID): Eine eindeutige numerische ID für den Benutzer.
  4. gruppen_id (GID): Die ID der primären Gruppe des Benutzers.
  5. gefullname: Ein optionales Feld für den vollständigen Namen des Benutzers oder eine Beschreibung (manchmal bleibt es leer).
  6. home_verzeichnis: Das Verzeichnis, in dem der Benutzer seine Dateien speichert (z. B. /home/john).
  7. shell: Die Standard-Shell, die beim Einloggen verwendet wird (z. B. /bin/bash oder /bin/sh).

Ein Beispiel eines Eintrags:

john:x:1001:1001:John Doe:/home/john:/bin/bash

In diesem Beispiel bedeutet:

  • Benutzername: john
  • Passwort: x (Passwort wird in /etc/shadow gespeichert)
  • UID: 1001
  • GID: 1001
  • Vollständiger Name: John Doe
  • Home-Verzeichnis: /home/john
  • Shell: /bin/bash

Benutzer löschen

Befehl Aktion
sudo userdel benutzername Löscht den User
sudo userdel -r benutzername Home-Verzeichnis wird gelöscht