Files
chemenu/kb/concepts/User Management.md
T
torben 18ae28f918
CI / verify (push) Failing after 32s
Release / release (push) Successful in 38s
Chemenu 2.1.0 - deterministischer Wissenskompiler
Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki:
raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht
tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren
Grenzen in Code durchgesetzt sind statt im Prompt.

Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige
Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses
Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44
Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist.

Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den
Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er
dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs.

Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte.
Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet -
siehe NOTICE.
2026-09-01 16:26:14 +02:00

7.2 KiB

type, concept_type, tags, created, modified, related, sources, confidence, confidence_base, provenance, summary
type concept_type tags created modified related sources confidence confidence_base provenance summary
types/concept.md workflow
linux
administration
security
users
groups
2026-07-31 2026-08-29
Arch Linux
AUR
Aura
makepkg
Source - Arch Linux Cheat Sheet
0.95 0.95 sourced Linux-Ablauf zum Anlegen, Ändern, Überwachen und Löschen von Benutzerkonten mit useradd, usermod und userdel, samt Gruppenverwaltung und sudoers-Konfiguration.

User Management

Typ: workflow

Definition

Benutzerverwaltung umfasst die Erstellung, Änderung, Überwachung und Löschung von Benutzerkonten auf einem Linux-System. Dies beinhaltet die Verwaltung von Passwörtern, Gruppenmitgliedschaften, Berechtigungen und Kontostatus (gesperrt/entsperrt, aktiviert/deaktiviert).

Kernpunkte

  • Kernwerkzeuge: useradd, usermod, userdel, passwd
  • Konfiguration: /etc/passwd, /etc/shadow, /etc/group, /etc/sudoers
  • Kontostatus: Aktiv, gesperrt, abgelaufen, deaktiviert
  • Best Practice: Principle of least privilege

Sperrung von Konten

Die Sperrung eines Benutzerkontos verhindert die kennwortbasierte Authentifizierung, während das Konto und seine Dateien erhalten bleiben. Das Konto kann später ohne Datenverlust entsperrt werden.

Methoden zum Sperren von Konten

Methode 1: usermod (Empfohlen)

# Lock an account
sudo usermod -L username

# Unlock an account
sudo usermod -U username

Was passiert: Fügt das Präfix ! zum Passwort-Hash in /etc/shadow hinzu

Methode 2: passwd

# Lock an account
sudo passwd -l username

# Unlock an account
sudo passwd -u username

Was passiert: Gleiches wie usermod -L, fügt das Präfix ! zum Passwort hinzu

Sperrstatus überprüfen

# Check if user account is locked
passwd --status username

Beispielausgabe:

username LK 2026-07-31 0 99999 7 -1 (Password set, SHA512 crypt.)

Das Flag LK zeigt Gesperrtes Konto an (Passwort gesperrt).

Alle Benutzer überprüfen

# List all users with account status
passwd -a --status

# Alternative: check /etc/shadow
sudo grep '^username:' /etc/shadow

Format für gesperrtes Passwort: Präfix ! oder !! im zweiten Feld von /etc/shadow

Benutzer erstellen

Einfache Benutzererstellung

# Create user with home directory
sudo useradd -m username

# Set password
sudo passwd username

# Create user with custom home, shell, and comment
sudo useradd -m -d /home/customdir -s /bin/bash -c "Full Name" username

Benutzer mit Ablaufdatum erstellen

# Create user that expires on specific date
sudo useradd -e 2026-12-31 username

# Modify expiry of existing user
sudo usermod -e 2026-12-31 username

Massenerstellung von Benutzern

# Create multiple users
for user in user1 user2 user3; do
  sudo useradd -m $user
  sudo passwd $user
done

Benutzer löschen

Benutzer entfernen (Home-Verzeichnis behalten)

sudo userdel username

Benutzer und Home-Verzeichnis entfernen

sudo userdel -r username

Erzwungenes Löschen (Benutzer ist angemeldet)

# Kill user processes first
sudo pkill -u username
sudo pkill -9 -u username

# Then delete
sudo userdel -r -f username

Gruppenverwaltung

Gruppen erstellen und verwalten

# Create group
sudo groupadd groupname

# Add user to group
sudo usermod -aG groupname username

# Remove user from group
sudo gpasswd -d username groupname

# Delete group
sudo groupdel groupname

Primäre vs. ergänzende Gruppen

  • Primäre Gruppe: Wird bei Anmeldung gesetzt, Standard für neue Dateien
  • Ergänzende Gruppen: Zusätzliche Gruppenmitgliedschaften
# Set primary group
sudo usermod -g primarygroup username

# Add to supplementary group
sudo usermod -aG supplementarygroup username

Sudo-Konfiguration

Benutzer zu Sudoers hinzufügen

# Add to wheel group (most distributions)
sudo usermod -aG wheel username

# Manual sudoers entry
sudo visudo
# Add line: username ALL=(ALL) ALL

Passwortloses Sudo

# Add to sudoers with NOPASSWD
sudo visudo
# Add line: username ALL=(ALL) NOPASSWD: ALL

# For CI/CD containers (example from [[Arch Linux]] page)
echo "builder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

Passwortverwaltung

Passwort ändern

# Change own password
passwd

# Change another user's password (requires sudo)
sudo passwd username

Erzwinge Passwortänderung beim nächsten Anmelden

sudo passwd -e username

Passwortrichtlinien

Konfigurieren in /etc/login.defs:

  • PASS_MAX_DAYS - Maximales Paswortalter
  • PASS_MIN_DAYS - Minimales Paswortalter
  • PASS_MIN_LEN - Minimale Passwortlänge

Benutzer überwachen

Angemeldete Benutzer auflisten

# Show logged in users
who

# Show with more details
w

# Show login history
last

# Show user processes
ps -u username

Anmeldestatus des Benutzers überprüfen

# Check when user last logged in
lastlog | grep username

# Check user's login shell
getent passwd username | cut -d: -f7

Kontoablauf

Ablauf überprüfen

# Check when account expires
chage -l username

# Check via /etc/shadow (field 8 = expiry date)
sudo grep username /etc/shadow | cut -d: -f8

Ablauf einstellen

# Set expiry date (YYYY-MM-DD)
sudo chage -E 2026-12-31 username

# Set password expiry (days until must change)
sudo chage -M 90 username

Deaktivieren vs. Sperren

Aktion Methode Umkehrbar Erhält Dateien Erhält UID/GID
Sperren usermod -L oder passwd -l Ja Ja Ja
Deaktivieren usermod --expiredate 1 Ja Ja Ja
Löschen userdel Nein Vielleicht (mit -r) Nein

Best Practices

  1. Gruppen verwenden: Berechtigungen über Gruppen verwalten, nicht über einzelne Benutzer
  2. Least Privilege: Nur notwendige Berechtigungen erteilen
  3. Kontobereinigung: Regelmäßig ungenutzte Konten entfernen
  4. Passwortrichtlinien: Starke Passwörter und Rotation erzwingen
  5. Audit-Protokolle: Benutzeraktivitätsprotokolle überwachen
  6. Sudoers sichern: Immer visudo verwenden, nie direkt bearbeiten
  7. SSH-Schlüssel: SSH-Schlüsselverwaltung gegenüber Passwörtern bevorzugen

Häufige Probleme

Benutzer kann sich nicht anmelden

# Check account status
passwd -S username

# Check if locked
passwd --status username | grep LK

# Check if expired
chage -l username | grep "Account expires"

# Check if shell is valid
getent passwd username | cut -d: -f7

Berechtigung verweigert

# Check group membership
groups username

# Check file permissions
ls -la /path/to/file

# Check effective permissions
sudo -u username test -r /path/to/file

Beziehungen

  • Verwendet in: Arch Linux-Paketentwicklung (Non-Root-Builder-Benutzer)
  • Verwendet von: AUR und Aura für Paketverwaltung
  • Verwendet mit: makepkg in CI/CD-Workflows und andere Systeme

Siehe auch