Einführung & Grundlagen der Benutzerverwaltung
Eine saubere Trennung von Zugriffsrechten und eine standardisierte Bereitstellung von Benutzerkonten bilden das Fundament jeder verlässlichen Linux-Serveradministration. In diesem Leitfaden beleuchten wir die praxisnahe Handhabung des High-Level-Werkzeugs adduser unter Ubuntu. Wir zeigen, wie Sie typische Fehlerquellen beim Einrichten von Zugängen umschiffen, grenzen das Tool gegenüber dem systemnahen Low-Level-Befehl useradd ab und analysieren essenzielle Sicherheitsaspekte rund um Home-Verzeichnisberechtigungen.
Benutzerkonten effizient anlegen: Interaktive Erstellung versus automatisierte Skripte
Vor den praktischen Übungen stellen wir sicher, dass alle relevanten Werkzeuge zur Konten- und Passwortverwaltung auf dem aktuellen Stand vorliegen:

Im Gegensatz zu minimalistischen Basistools fungiert adduser als komfortables Frontend: Es richtet das Home-Verzeichnis vollautomatisch ein, kopiert Skript-Templates und weist Standard-Shells zu – wahlweise im interaktiven Dialog oder komplett unbeaufsichtigt.
Um den interaktiven Eingabedialog in Automatisierungspipelines oder Shell-Skripten zu umgehen, bieten sich Parameter wie --disabled-password und --gecos an.
⚙️ [Wichtige Parameter im Überblick]
--home DIR : Weist dem neuen Benutzer ein benutzerdefiniertes Arbeitsverzeichnis anstelle des standardmäßigen Pfads zu.--shell SHELL : Definiert die Standard-Login-Shell abweichend von der systemweiten Voreinstellung.--gecos GECOS : Hinterlegt administrative Zusatzangaben (wie Realname, Raumnummer oder Telefonkontakt) in einem einzigen Schritt, ohne nachzufragen.--disabled-password : Legt den Account ohne Passwort an und sperrt die direkte interaktive Anmeldung, bis ein Kennwort zugewiesen wird.--disabled-login : Erzeugt ein Benutzerkonto und blockiert gleichzeitig jegliche Shell-Anmeldung vollständig.--ingroup GROUP : Ordnet dem Account eine bereits existierende Gruppe als primäre Gruppe zu.--system : Erstellt ein dediziertes Systemkonto für Hintergrunddienste und Daemons anstelle eines regulären Benutzers.

Über das Dienstprogramm chpasswd lassen sich Kontonamen und Passwörter als Batch-Eingabe via Standard-Input übergeben – ideal, um interaktive Prompts vollständig zu vermeiden.
Auf diese Weise statten wir den zuvor erstellten Account testuser direkt mit einem definierten Passwort aus:

Mit dem Befehl id lässt sich unmittelbar validieren, ob UID, primäre GID und etwaige Gruppenzugehörigkeiten des Accounts ordnungsgemäß im System registriert wurden.
Die Terminalausgabe liefert auf einen Blick Klarheit über die numerischen IDs und die Zuordnung von testuser.

Ein anschließender Blick via ls -la in das Home-Verzeichnis bestätigt, dass Standardkonfigurationsdateien korrekt übernommen wurden.
Hierbei wird deutlich, dass das Verzeichnis /etc/skel als Vorlage herangezogen wurde und Profildateien wie .bashrc sowie .profile mit passenden Besitzrechten bereitgestellt wurden.

Sekundäre Gruppen zuweisen und sudo-Privilegien konfigurieren
Für das Szenario einer Gruppenaufnahme initialisieren wir zunächst eine neue sekundäre Gruppe mittels sudo groupadd -f devops.
Das Flag -f sorgt dafür, dass der Befehl auch dann ohne Fehlerstatus durchläuft, falls die Zielgruppe im System bereits registriert ist.

Unter Ubuntu gestaltet sich die Aufnahme in Zusatzgruppen denkbar intuitiv: Man übergibt adduser schlicht den Benutzernamen gefolgt vom Gruppennamen.
So binden wir testuser ohne kryptische Zusatzoptionen direkt in die Gruppe devops ein.

Soll der Benutzer vollwertige administrative Aufgaben übernehmen, erfolgt die Aufnahme in die Systemgruppe sudo.
Mitglieder dieser Gruppe sind berechtigt, Befehle mit Root-Rechten über das sudo-Framework auszuführen.

Mithilfe des Kommandos groups lässt sich anschließend verifizieren, welchen Gruppen der Benutzer aktuell angehört.
Die Ausgabe spiegelt wider, dass neben der primären Gruppe nun auch sudo und devops erfolgreich verknüpft sind.

Über sudo -l -U überprüfen wir abschließend die tatsächlich wirksamen Berechtigungsregeln für das Benutzerkonto.
Der Eintrag (ALL : ALL) ALL dokumentiert verbindlich, dass testuser uneingeschränkten Zugriff auf administrative Befehle besitzt.

Service- und Systembenutzer für Daemons isoliert bereitstellen (–system)
Über den Aufruf sudo adduser --system --no-create-home --group appservice erzeugen wir ein isoliertes Dienstkonto samt identisch benannter Systemgruppe.
Durch --system vergibt das System automatisch eine Kennung aus dem reservierten UID/GID-Bereich (100–999). Die Option --no-create-home verhindert zudem die Anlage eines überflüssigen Home-Verzeichnisses und minimiert so potenzielle Angriffsflächen.

Mit getent passwd appservice rufen wir den Eintrag direkt aus der Kontendatenbank ab.
Dabei zeigt sich, dass /nonexistent als Home-Pfad hinterlegt wurde und als Login-Shell /usr/sbin/nologin fungiert – wodurch interaktive Konsolenzugriffe wirksam unterbunden sind.

Ein kurzer Abgleich mit grep appservice /etc/group demonstriert, dass auch die zugehörige Gruppe korrekt angelegt wurde.
Dank des Parameters --group existiert nun die dedizierte Systemgruppe appservice (im Beispiel mit GID 103).

Abschließend verifizieren wir die Identitätsdaten des Dienstkontos über den Befehl id appservice.
Die Werte UID 102 und GID 103 bestätigen, dass das Konto sauber im Systembereich unterhalb der regulären Benutzergrenze (UID >= 1000) verankert ist.

Konzeptionelle Unterschiede zu useradd und saubere Kontobereinigung mit deluser
Ein Blick in die Konfigurationsdatei /etc/adduser.conf offenbart die Voreinstellungen für Verzeichnisrechte (DIR_MODE) und Standard-Shell (DSHELL).
Während das schlanke useradd ohne manuelle Flags oft nur Minimaldefaults setzt, greift adduser auf diese Datei zurück und wendet praxistaugliche Sicherheitsstandards wie 0750 oder 0700 sowie /bin/bash automatisch an.

Soll ein Benutzer wieder entfernt werden, empfiehlt sich sudo deluser --remove-home testuser, um neben dem Account auch verknüpfte Verzeichnisse und Mailspools restlos zu beseitigen.
Bleibt das Home-Verzeichnis verwaist auf der Festplatte zurück, entstehen ungesicherte Dateileichen ohne gültigen Eigentümer (Orphan Files), was ein Sicherheitsrisiko darstellt.

Systemkonten werden analog dazu mit sudo deluser --system appservice entfernt.
Der Schalter --system stellt dabei sicher, dass tatsächlich nur Dienstkonten bereinigt werden, und verhindert das versehentliche Löschen regulärer Benutzeraccounts.

Abschließend beseitigen wir zuvor angelegte Hilfsgruppen mittels sudo groupdel devops 2>/dev/null || true.
So hinterlässt der Testbetrieb keine ungenutzten Gruppenfragmente in der Systemkonfiguration.

Ein abschließender Prüfaufruf mit id testuser || true testet, ob noch Datensätze zum gelöschten Account vorhanden sind.
Sollten hier unerwartet noch IDs ausgegeben werden, deutet dies auf offene Benutzersitzungen oder unvollständig abgewickelte Bereinigungsschritte hin.

Mit diesen bewährten adduser-Mustern gelingt die Benutzerverwaltung unter Ubuntu sowohl im interaktiven Betrieb als auch in automatisierten Skripten zuverlässig und sicher.
Durch die konsequente Trennung von Benutzerrechten und das saubere Verwalten von Systemkonten schaffen Sie eine robuste Basis für eine sichere Linux-Serverinfrastruktur.