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.
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 |
|
2026-07-31 | 2026-08-29 |
|
|
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 PaswortalterPASS_MIN_DAYS- Minimales PaswortalterPASS_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
- Gruppen verwenden: Berechtigungen über Gruppen verwalten, nicht über einzelne Benutzer
- Least Privilege: Nur notwendige Berechtigungen erteilen
- Kontobereinigung: Regelmäßig ungenutzte Konten entfernen
- Passwortrichtlinien: Starke Passwörter und Rotation erzwingen
- Audit-Protokolle: Benutzeraktivitätsprotokolle überwachen
- Sudoers sichern: Immer
visudoverwenden, nie direkt bearbeiten - 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