Dem Linux-Login-Prompt auf der Spur

Überblick

Sobald der Linux-Kernel den Bootvorgang abgeschlossen hat, erscheint auf den Textkonsolen die vertraute Eingabeaufforderung »login:«. Gesteuert wird dieser fundamentale Einstiegspunkt durch den Daemon agetty. Anstatt sich mühsam durch abstrakte Handbuchseiten zu arbeiten, vermittelt diese Anleitung praxisnah die Funktionsweise dieses Dienstes: von der systemd-Integration über maßgeschneiderte Begrüßungsbanner via /etc/issue bis hin zu automatisierten Anmelderoutinen für den Serverbetrieb.

Funktionsweise von agetty und systemd-Statusprüfung

Zunächst ermitteln wir den exakten Speicherort der ausführbaren Datei im System mithilfe von which agetty.

Speicherort von agetty lokalisieren

Als Bindeglied zwischen Betriebssystem und Hardware initialisiert agetty virtuelle Terminals sowie serielle Schnittstellen, setzt Terminalmodi und öffnet die Login-Schnittstelle für Benutzer. Ein Blick auf die installierte Version und das Repertoire an Parametern verschafft Klarheit über die vorhandenen Steuerungsoptionen.
⚙️ [Zentrale Optionen]

-a, --autologin : Meldet das angegebene Benutzerkonto ohne manuelle Interaktion am Login-Prompt direkt an.
-J, --noclear : Verhindert das automatische Löschen des Bildschirms vor Ausgabe des Prompts, wodurch Systemmeldungen lesbar bleiben.
-f, --issue-file : Verweist auf eine alternative Datei für das Systembanner anstelle des Standards /etc/issue.
-o, --login-options : Reicht maßgeschneiderte Startargumente direkt an das nachgelagerte Dienstprogramm login weiter.
-n, --skip-login : Unterdrückt die Abfrage des Benutzernamens und springt direkt zur nachfolgenden Authentifizierungsphase.
-8, --8bits : Richtet das Terminal für eine saubere 8-Bit-Zeichenverarbeitung ein.

Version und Build-Optionen von agetty

Um den aktuellen Betriebszustand und Prozessparameter der Instanz für die primäre Konsole (tty1) zu analysieren, führen wir systemctl status [email protected] --no-pager aus.
Die Ausgabe signalisiert, dass der Hintergrundprozess ordnungsgemäß läuft und empfangsbereit auf Anmeldeversuche wartet.

Statusabfrage von getty@tty1.service

Individuelle Begrüßungsbanner via /etc/issue gestalten

Die standardmäßig hinterlegte Banner-Meldung für Konsolenbenutzer lässt sich unkompliziert mit cat /etc/issue inspizieren.
Die darin enthaltenen Steuerzeichen wie \n und \l sind dynamische Platzhalter von agetty: Ersteres expandiert zum Rechnernamen (Hostname), während Letzteres die Nummer der aktuell genutzten Terminalleitung (TTY) repräsentiert.

Standardinhalt von /etc/issue anzeigen

Bevor Modifikationen vorgenommen werden, sichern wir die Originalkonfiguration durch sudo cp /etc/issue /etc/issue.bak, um jederzeit auf die Werkseinstellungen zurückgreifen zu können.

Sicherheitskopie der Datei /etc/issue

Um eine informative Begrüßung inklusive Plattformangaben und Systemzeit zu erzeugen, schreiben wir ein neues Schema mit echo -e '\n=== Welcome to Ubuntu Server (tty: \l) ===\nOS: \s \r (\m) | Time: \t\n' | sudo tee /tmp/custom_issue.
Dieser Entwurf nutzt Variablen für den Terminalbezeichner (\l), den Namen des Betriebssystems (\s), die Kernel-Version (\r), die CPU-Architektur (\m) sowie die aktuelle Uhrzeit (\t).

Erstellen eines personalisierten Ausgabe-Templates

Zur Verifikation der syntaktischen Korrektheit und der Steuerzeichen überprüfen wir die temporäre Vorlage mittels cat /tmp/custom_issue.

Kontrolle des erzeugten Issue-Entwurfs

Feintuning der agetty-Parameter über systemd-Drop-ins

Mittels systemctl cat [email protected] rufen wir die wirksame Unit-Struktur der ersten virtuellen Konsole ab.
Dort wird ersichtlich, welche Basisumgebung und welche ExecStart-Zeile aus der übergeordneten Vorlage /usr/lib/systemd/system/[email protected] vererbt werden.

Originalkonfiguration der Service-Unit betrachten

Da Paketdateien bei Software-Aktualisierungen überschrieben werden können, erzeugen wir mit sudo mkdir -p /etc/systemd/system/[email protected] ein isoliertes Drop-in-Verzeichnis für saubere Overrides.

Drop-in-Verzeichnis für systemd anlegen

Um das Leeren des Bildschirms zu verhindern (--noclear) sowie Baudraten und Terminalemulation anzupassen, platzieren wir eine Konfigurationsdatei:
echo -e '[Service]\nExecStart=\nExecStart=-/sbin/agetty -o "-p -- \\u" --noclear -s %I 115200,38400,9600 vt220' | sudo tee /etc/systemd/system/[email protected]/noclear.conf
Ein vorangestelltes, leeres ExecStart= setzt die geerbte Direktive zunächst zurück, woraufhin die modifizierte Befehlszeile von agetty als neuer Standard hinterlegt wird.

Einfügen der angepassten ExecStart-Direktive

Damit der systemd-Diensteverwalter die neuen Drop-in-Anweisungen parst und übernimmt, stoßen wir mit systemctl daemon-reload eine Aktualisierung an.

systemd-Dienstekonfiguration aktualisieren

Ob die Übersteuerung planmäßig in die Gesamtdefinition eingeflossen ist, lässt sich erneut mit systemctl cat [email protected] verifizieren.
Am Ende der Ausgabe wird der Inhalt von noclear.conf angezeigt, was die erfolgreiche Aktivierung der benutzerdefinierten Flags belegt.

Überprüfung der kombinierten Service-Konfiguration

Monitoring von Terminalschnittstellen und seriellen Konsolen

Um zu prüfen, welche virtuellen Konsoleninstanzen im aktuellen Systembetrieb tatsächlich laufen, dient der Befehl systemctl list-units --type=service 'getty@*' --no-pager.
Das Resultat bekräftigt, dass die Instanz [email protected] aktiv verwaltet wird und ihren Dienst auf der primären Textkonsole versieht.

Aktive getty-Dienste im System auflisten

Auf Cloud-Servern, Hypervisoren oder Hardware-Appliances kommt häufig der seriellen Konsole eine zentrale Rolle zu. Der Status dieser Vorlagen lässt sich über systemctl list-unit-files 'serial-getty*' --no-pager einsehen.
Die Abfrage zeigt die installierte Schablone [email protected], die im Regelfall im inaktiven Zustand (disabled) bereitliegt, bis ein entsprechender COM-Port angesprochen wird.

Verfügbarkeit der seriellen getty-Units abfragen

Welche Anwender derzeit im System eingeloggt sind und welche Schnittstellen (TTYs) belegt werden, bringt der kompakte Aufruf von w ans Licht.
Neben den aktiven Terminalsitzungen liefert die Ausgabe auf einen Blick entscheidende Metriken zur Uptime und durchschnittlichen Systemlast (load average).

Aktive Terminalsitzungen und Systemauslastung anzeigen

Dieser Praxisleitfaden verdeutlicht, wie eng verzahnt agetty und systemd den Authentifizierungsprozess an Linux-Konsolen koordinieren. Durch gezielte Drop-in-Konfigurationen und individuelle Textausgaben behalten Administratoren die volle Kontrolle über das Anmeldeverhalten ihrer Systeme.