--- type: types/concept.md concept_type: workflow tags: [linux, administration, security, users, groups] created: 2026-07-31 modified: 2026-08-29 related: - see-also: Arch Linux - see-also: AUR - see-also: Aura - see-also: makepkg sources: [Source - Arch Linux Cheat Sheet] confidence: 0.95 confidence_base: 0.95 provenance: sourced summary: 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) ```bash # 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 ```bash # 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 ```bash # 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 **G**esperrtes Konto an (Passwort gesperrt). ### Alle Benutzer überprüfen ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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) ```bash sudo userdel username ``` ### Benutzer und Home-Verzeichnis entfernen ```bash sudo userdel -r username ``` ### Erzwungenes Löschen (Benutzer ist angemeldet) ```bash # 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 ```bash # 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 ```bash # Set primary group sudo usermod -g primarygroup username # Add to supplementary group sudo usermod -aG supplementarygroup username ``` ## Sudo-Konfiguration ### Benutzer zu Sudoers hinzufügen ```bash # Add to wheel group (most distributions) sudo usermod -aG wheel username # Manual sudoers entry sudo visudo # Add line: username ALL=(ALL) ALL ``` ### Passwortloses Sudo ```bash # 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 ```bash # Change own password passwd # Change another user's password (requires sudo) sudo passwd username ``` ### Erzwinge Passwortänderung beim nächsten Anmelden ```bash 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 ```bash # 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 ```bash # Check when user last logged in lastlog | grep username # Check user's login shell getent passwd username | cut -d: -f7 ``` ## Kontoablauf ### Ablauf überprüfen ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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 ## Siehe auch - [[Source - Arch Linux Cheat Sheet]] - https://wiki.archlinux.org/title/Users_and_groups - https://www.thegeekdiary.com/unix-linux-how-to-lock-or-disable-an-user-account/ ## Beziehungen - **see-also:** [[Arch Linux]] - **see-also:** [[AUR]] - **see-also:** [[Aura]] - **see-also:** [[makepkg]]