Agetty: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(52 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''agetty''' - | '''agetty''' - Alternativer Linux [[Getty]] | ||
== Beschreibung == | == Beschreibung == | ||
agetty öffnet einen TTY-Port, bittet um einen Anmeldenamen und startet den Befehl /bin/login | |||
* Es wird normalerweise durch init(8) aufgerufen | |||
agetty verfügt über mehrere nicht standardisierte Funktionalitäten, die für Stand- und Einwählleitungen nützlich sind | |||
* Gleicht die TTY-Einstellungen für Paritätsbits und die Lösch-, Kill-, Zeilenende- und Großschriftzeichen an, wenn es den Anmeldenamen liest | |||
* Das Programm kann sowohl mit 7-Bit-Zeichen mit gerader, ungerader, keiner oder Space-Parität als auch mit 8-Bit-Zeichen ohne Parität umgehen | |||
* Die folgenden Sonderzeichen werden erkannt: Steuerungstaste-U (kill), Entfernen und Rückschritt (Löschen), Zeilenumbruch und Zeilenvorschub (Zeilenende) | |||
* Siehe auch die Optionen --erase-chars und --kill-chars | |||
* Ermittelt optional die Baudrate aus den von Hayes™-kompatiblen Modems erstellten CONNECT-Nachrichten | |||
* Legt optional nicht auf, wenn ihm eine bereits offene Leitung übergeben wird (nützlich für Rückrufanwendungen) | |||
* Zeigt optional den Inhalt der Datei /etc/issue nicht an | |||
* Zeigt optional alternative »issue«-Dateien oder -Verzeichnisse statt /etc/issue oder /etc/issue.d an | |||
* Fragt optional nicht nach einem Anmeldenamen | |||
* Startet optional ein nicht vorgegebenes Anmeldeprogramm statt /bin/login | |||
* Schaltet optional Hardware-Flusssteuerung ein | |||
* Erzwingt optional, dass die Leitung lokal und keine Signalerkennung notwendig ist | |||
Dieses Programm verwendet die Dateien /etc/gettydefs (System V) oder /etc/gettytab (SunOS 4) nicht | |||
== Installation == | == Installation == | ||
''agetty'' ist Teil des Pakets [[util-linux]] | |||
== Aufruf == | == Aufruf == | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line> | ||
agetty [Optionen] Port [Baudrate...] [Terminal] | agetty [Optionen] Port [Baudrate...] [Terminal] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Optionen === | === Optionen === | ||
{| class="wikitable sortable options gnu" | {| class="wikitable sortable options gnu" | ||
Zeile 15: | Zeile 34: | ||
! Unix !! GNU !! Parameter !! Beschreibung | ! Unix !! GNU !! Parameter !! Beschreibung | ||
|- | |- | ||
| -1 || -- | | -8 || --8bits || || Es wird angenommen, dass das TTY 8-Bit-korrekt ist, daher wird die Paritätserkennung abgeschaltet | ||
|- | |||
| -a || --autologin ||Benutzername || Der angegebene Benutzer wird ohne Abfrage eines Benutzernamens oder Passworts automatisch angemeldet | |||
* Die Verwendung dieser Option führt dazu, dass die Option und das Argument -f | |||
* Benutzername zu der Befehlszeile von /bin/login hinzugefügt werden | |||
* Siehe --login-options, die zur Veränderung des Verhaltens dieser Option verwendet werden kann | |||
* Beachten Sie, dass --autologin die Art beeinflussen könnten, in der getty die serielle Leitung initialisiert, da beim automatischen Anmelden getty nicht von der Leitung liest und keine Möglichkeit hat, die Leitungseinstellungen zu optimieren | |||
|- | |||
| -c || --noreset || || Terminal-Cflags (Steuermodi) werden nicht zurückgesetzt | |||
* Siehe termios(3) für weitere Details | |||
|- | |||
| -E || --remote || || Typischerweise wird dem Befehl login(1) ein Rechnernamen in der Ferne übergeben, wenn es von etwas wie telnetd(8) aufgerufen wird | |||
* Diese Option erlaubt es agetty, an login(1) für die Verwendung in utmp(5) den von ihm verwendeten Rechnernamen zu übergeben | |||
* Siehe --host, login(1) und utmp(5) | |||
* Falls eine Option --host Fake-Rechner angegeben wird, dann wird die Option und das Argument -h Fake-Rechner zu der Befehlszeile von /bin/login hinzugefügt | |||
* Falls die Option --nohostname angegeben wird, dann wird die Option -H zu der Befehlszeile von /bin/login hinzugefügt | |||
* Siehe --login-options | |||
|- | |||
| -f || --issue-file Pfad || || Gibt eine durch Doppelpunkte (»:«) getrennte Liste anzuzeigender Dateien und Verzeichnisse statt /etc/issue (oder anderen) an | |||
* Alle angegebenen Dateien und Verzeichnisse werden angezeigt; fehlende oder leere Dateien werden stillschweigend ignoriert | |||
* Falls der festgelegte Pfad ein Verzeichnis ist, werden alle Dateien mit der Erweiterung .issue aus diesem Verzeichnis in Versionsreihenfolge angezeigt | |||
* Dies ermöglicht es, auf verschiedenen Terminals angepasste Meldungen anzuzeigen | |||
* Die Option --noissue setzt diese Option außer Kraft | |||
|- | |||
| || --show-issue || || zeigt die aktuelle Issue-Datei (oder andere) im aktuellen Terminal an und beendet das Programm | |||
* Verwenden Sie diese Option zum Betrachten der derzeitigen Einstellungen; sie dient keinem anderen Zweck | |||
* Beachten Sie, dass die Ausgabe eventuell Vorgabe- oder unvollständige Informationen beinhalten kann, da eine korrekte Ausgabe vom Terminal und der Befehlszeile von agetty abhängig ist | |||
|- | |||
| -h || --flow-control || || Hardwareflusssteuerung (RTS/CTS) aktivieren | |||
* Es bleibt der Anwendung überlassen, Softwareflusssteuerung (XON/XOFF) wo notwendig zu deaktivieren | |||
|- | |||
| -H || --host || Fake-Rechner|| Schreibt den angegebenen Fake-Rechner in die Datei »utmp« | |||
* Normalerweise wird kein Anmelderechner angegeben, da agetty für lokale, festverdrahtete Verbindungen und Konsolen benutzt wird | |||
* Diese Option kann allerdings für die Identifizierung von Terminal-Konzentratoren und ähnlichem nützlich sein | |||
|- | |||
| -i || --noissue || || Zeigt den Inhalt von /etc/issue (oder anderen) vor der Ausgabe der Anmeldeeingabeaufforderung nicht an | |||
* Terminals oder Kommunikations-Hardware könnten beim Empfang von vielem Text mit der falschen Baudrate durcheinanderkommen; Einwählskripte könnten fehlschlagen, falls vor der Anmeldeeingabeaufforderung zu viel Text steht | |||
|- | |||
| -I || --init-string || Init-Zeichenkette || Setzt eine initiale Zeichenkette, die an das TTY oder Modem vor dem Senden von allem anderen übertragen werden soll | |||
* Dies kann zur Initialisierung des Modems verwendet werden | |||
* Nicht darstellbare Zeichen können gesendet werden, indem ihrem oktalen Code ein Rückwärtsschrägstrich (\) vorangestellt wird | |||
* Beispielsweise schreiben Sie | |||
|- | |||
| -J || --noclear || || Löscht den Bildschirm nicht, bevor nach dem Anmeldenamen gefragt wird | |||
* Standardmäßig wird der Bildschirm gelöscht | |||
|- | |||
| -l || --login-program || Anmeldeprogramm || Ruft ein spezielles Anmeldeprogramm statt /bin/login auf | |||
* Dies ermöglicht es, ein nicht standardisiertes Anmeldeprogramm zu verwenden | |||
* Beispielsweise könnte ein solches Programm nach einem Einwählpasswort fragen oder eine andere Passwort-Datei verwenden | |||
* Siehe --login-options | |||
|- | |||
| -L || --local-line || [=Modus]|| Steuert den Leitungsschalter CLOCAL | |||
* Das optionale Argument Modus ist auto, always oder never | |||
* Falls das Argument Modus weggelassen wird, ist die Vorgabe always | |||
* Falls die Option --local-line überhaupt nicht angegeben ist, dann ist die Vorgabe auto | |||
* always: Erzwingt, dass die Leitung lokal und keine Signalerkennung notwendig ist | |||
* Dies kann nützlich sein, falls Sie ein lokal angebundenes Terminal haben, bei der die serielle Leitung nicht das Signal »carrier-detect« setzt | |||
* never: Setzt den Schalter CLOCAL aus den Leitungseinstellungen explizit zurück und das Signal »carrier-detect« wird auf der Leitung erwartet | |||
* auto: Vorgabe von agetty | |||
* Verändert die CLOCAL-Einstellung nicht und folgt den Einstellungen, die vom Kernel aktiviert wurden | |||
|- | |||
| -m || --extract-baud || || Versucht, die Baudrate aus der von Hayes(tm)-kompatiblen Modems erstellten CONNECT-Statusmeldung auszulesen | |||
* Die Statusmeldungen sind von folgender Form: »<Müll><Geschwindigkeit><Müll>« | |||
* agetty nimmt an, dass das Modem die Statusmeldung mit der gleichen Geschwindigkeit ausgibt, wie das mit dem (ersten) Baudrate-Wert auf der Befehlszeile angegeben ist | |||
* Da die Funktionalität von --extract-baud auf stark beschäftigten Systemen fehlschlagen könnte, sollten Sie dennoch die Verarbeitung von BREAK aktivieren, indem Sie alle erwarteten | |||
Baudraten auf der Befehlszeile aufzählen | |||
|- | |||
| || --list-speeds || || Unterstützte Baudraten anzeigen | |||
* Diese werden während der Kompilation festgelegt | |||
|- | |||
| -n || --skip-login || || Fragt den Benutzer nicht nach einem Anmeldenamen | |||
* Dies kann für Verbindungen mit der Option --login-program verwendet werden, um einen nicht standardmäßigen Anmeldeprozess wie eine Mailbox (BBS) aufzurufen | |||
* Beachten Sie, dass agetty mit der Option --skip-login keine Eingabezeichen von dem Benutzer erhält, der sich anmeldet, und daher nicht die Parität, Zeichenbreite und die Verarbeitung von Zeilenumbrüchen in der Verbindung erkennen kann | |||
* Als Vorgabe wird Space-Parität, 7-Bit-Zeichen und ASCII-CR (13) Zeilenumbruchzeichen verwendet | |||
* Achtung: Das von agetty gestartete Programm (normalerweise /bin/login) wird als root ausgeführt | |||
|- | |||
| -N || --nonewline || || Keinen Zeilenumbruch vor dem Schreiben von /etc/issue anzeigen | |||
|- | |||
| -o || --login-options || Anmeldeoptionen || Optionen und Argumente, die an login(1) übergeben werden | |||
* Hierbei wird \u durch den Anmeldenamen ersetzt | |||
* Beispiel | |||
|- | |||
| || --login-options || '-h darkstar -- \u' || Siehe --autologin | |||
|- | |||
| || --login-program</br>--remote || || |Bitte lesen Sie unten den SICHERHEITSHINWEIS, bevor Sie diese Option benutzen | |||
|- | |||
| -p || --login-pause || || Wartet auf einen Tastendruck, bevor eine Anmeldeaufforderung ausgegeben wird | |||
* Kann mit --autologin kombiniert werden, um durch träges Erzeugen von Shells Speicher zu sparen | |||
|- | |||
| -r || --chroot || Verzeichnis || Ändert das Wurzelverzeichnis auf das angegebene Verzeichnis | |||
|- | |||
| -R || --hangup || || Ruft vhangup(2) auf, um auf dem angegebenen Terminal virtuell aufzulegen | |||
|- | |||
| -s || --keep-baud || || versucht, die vorhandene Baud-Rate beizubehalten | |||
* Die Baud-Raten aus der Befehlszeile werden verwendet, wenn agetty ein BREAK-Zeichen empfängt | |||
* Falls andere Baud-Raten angegeben werden, so wird auch die ursprüngliche Baud-Rate am Ende der Liste der gewünschten Baud-Raten angehängt | |||
* Auf diese Weise können Sie nach unerwarteten BREAKs zur ursprünglichen Baud-Rate zurückkehren | |||
|- | |||
| -t || --timeout Dauer || || Beendet sich, falls der Benutzername nicht innerhalb von Dauer Sekunden eingelesen werden konnte | |||
* Diese Option sollte nicht mit festverdrahteten Leitungen verwendet werden | |||
|- | |||
| -U || --detect-case || || Schaltet die Unterstützung für die Erkennung von Terminals ein, die nur Großschreibung beherrschen | |||
* Diese Einstellung wird einen Anmeldenamen, der nur Großbuchstaben enthält, erkennen und davon ausgehend auf ein Terminal schließen, das nur Großbuchstaben beherrscht und dann einige Groß-zu-Kleinbuchstaben-Umwandlungen aktivieren | |||
* Beachten Sie, dass dabei keine Unterstützung für Unicode-Zeichen vorhanden ist | |||
|- | |||
| -w || --wait-cr || || Wartet bis der Benutzer oder das Modem ein Zeilenumbruch- oder Wagenrücklaufzeichen gesendet hat, bevor die (oder andere) Datei(n) /etc/issue und eine Eingabeaufforderung gesandt wird | |||
* Dies ist in Verbindung mit der Option --init-string nützlich | |||
|- | |||
| || --nohints || || Keine Hinweise zu den Num-, Rollen- und Feststelltasten anzeigen | |||
|- | |||
| || --nohostname || || gibt keinen Rechnernamen aus (standardmäßig wird der Rechnername ausgegeben) | |||
* Diese Einstellung kann auch in der Option LOGIN_PLAIN_PROMPT in der /etc/login.defs-Konfiguration aktiviert werden (siehe nachfolgend für weitere Details) | |||
|- | |||
| || --long-hostname || || Standardmäßig wird der Rechnername nur bis zum ersten Punkt angezeigt | |||
* Wird diese Option aktiviert, dann wird der vollqualifizierte Rechnername durch gethostname(3P) oder (falls nicht gefunden) durch getaddrinfo(3) angezeigt | |||
|- | |||
| || --erase-chars || Zeichenkette || Diese Option legt zusätzliche Zeichen fest, die als Rückschritt (»das letzte Zeichen ignorieren«) interpretiert werden sollen, wenn der Benutzer den Anmeldenamen eingibt | |||
* Standardmäßig war »#« das zusätzliche »erase« (löschen), aber seit Util-Linux 2.23 werden keine zusätzlichen Löschzeichen standardmäßig aktiviert | |||
|- | |||
| || --kill-chars || Zeichenkette || Diese Option legt zusätzliche Zeichen fest, die als Bereinigen (»alle vorherigen Zeichen ignorieren«) interpretiert werden sollen, wenn der Benutzer den Anmeldenamen eingibt | |||
* Standardmäßig war »@« das zusätzliche »kill« (bereinigen), aber seit Util-Linux 2.23 werden keine zusätzlichen Bereinigungszeichen standardmäßig aktiviert | |||
|- | |||
| || --chdir || Verzeichnis || Vor dem Anmelden das Verzeichnis wechseln | |||
|- | |||
| || --delay || Anzahl || wartet diese Anzahl an Sekunden, bevor ein TTY geöffnet wird | |||
|- | |||
| || --nice || Nummer || führt die Anmeldung mit dieser Priorität aus | |||
|- | |||
| || --reload || || Fordert alle laufenden Instanzen von agetty auf, sich neu zu laden und ihre angezeigten Anmeldeaufforderungen zu aktualisieren, falls der Benutzer noch nicht mit der Anmeldung begonnen hat | |||
* Danach wird sich der Befehl beenden | |||
* Diese Funktionalität wird von Systemen ohne Linux-inotify(7) möglicherweise nicht unterstützt | |||
|- | |||
| -h || --help || || zeigt einen Hilfetext an und beendet das Programm | |||
|- | |||
| -V || --version || || zeigt Versionsinformationen an und beendet das Programm | |||
|- | |||
|} | |||
=== Argumente === | |||
{| class="wikitable options" | |||
|- | |||
! Argumente !! Beschreibung | |||
|- | |||
| Port || Ein Pfadname relativ zum Verzeichnis /dev | |||
* Falls ein »-« angegeben wurde, nimmt agetty an, dass seine Standardeingabe bereits mit einem TTY-Port verbunden ist und dass die Verbindung zu einem Benutzer in der Ferne bereits aufgebaut wurde | |||
* Wenn unter System V als Port-Argument ein »-« übergeben wird, sollte die Zeichenkette »--« vorangestellt werden | |||
|- | |||
| Baudrate,... || Eine kommatagetrennte Liste einer oder mehrerer Baudraten | |||
* Jedes Mal, wenn agetty ein BREAK-Zeichen empfängt, schreitet es durch die Liste fort, die so behandelt wird, als ob sie zirkulär wäre | |||
* Baudraten sollten in absteigender Reihenfolge angegeben werden, so dass das Null-Zeichen (Strg-@) auch für den Wechsel der Baudrate verwendet werden kann | |||
* Dieses Argument ist optional und für virtuelle Terminals unnötig | |||
* Die Vorgabe für serielle Terminals ist, die aktuelle Baudrate beizubehalten (siehe --keep-baud) und falls nicht erfolgreich, als Vorgabe »9600« zu verwenden | |||
|- | |||
| Terminal || Der Wert, der für die Umgebungsvariable TERM verwendet werden soll | |||
* Dies setzt außer Kraft, was auch immer init(8) gesetzt haben könnte und wird an das Anmeldeprogramm und die Shell vererbt | |||
* Die Vorgabe ist »vt100« oder »linux« für Linux auf einem virtuellen Terminal oder »hurd« für GNU Hurd auf einem virtuellen Terminal | |||
|- | |- | ||
|} | |} | ||
=== Umgebungsvariablen === | === Umgebungsvariablen === | ||
=== Exit-Status === | === Exit-Status === | ||
== Anwendung == | == Anwendung == | ||
Dieser Abschnitt zeigt Beispiele für das Prozessfeld eines Eintrages in der Datei /etc/inittab | |||
* Sie müssen für die anderen Felder geeignete Werte voranstellen | |||
* Siehe inittab(5) für weitere Details | |||
; Für eine hartverdrahtete Leitung oder ein Konsolen-TTY | |||
<syntaxhighlight lang="bash" highlight="1"> | |||
/sbin/agetty 9600 ttyS1 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
; Für ein direkt verbundenes Terminal ohne korrekte »carrier-detect«-Verkabelung | |||
(versuchen Sie das, falls Ihr Terminal nicht reagiert, statt Ihnen eine »password«-Eingabeaufforderung | |||
anzuzeigen) | |||
<syntaxhighlight lang="bash" highlight="1"> | |||
/sbin/agetty --local-line 9600 ttyS1 vt100 | /sbin/agetty --local-line 9600 ttyS1 vt100 | ||
</syntaxhighlight> | |||
Für eine altertümliche Einwählleitung mit einem 9600/2400/1200-Baud-Modem | ; Für eine altertümliche Einwählleitung mit einem 9600/2400/1200-Baud-Modem | ||
<syntaxhighlight lang="bash" highlight="1"> | |||
/sbin/agetty --extract-baud --timeout 60 ttyS1 9600,2400,1200 | /sbin/agetty --extract-baud --timeout 60 ttyS1 9600,2400,1200 | ||
</syntaxhighlight> | |||
Für ein Hayes-Modem mit einer fest eingestellten 115200-bit/s-Schnittstelle zum Rechner (die Beispiel-Init-Zeichenkette schaltet das Echo des Modems und die Ergebniscodes ab, läßt | ; Hayes-Modem | ||
Modem-/Computer-Datenträgersignalerkennung (DCD) die Datenträgersignalerkennung des Modems/Modems verfolgen, erzeugt ein DTR, das zum Beenden der Verbindung führt und schaltet die automatische | Für ein Hayes-Modem mit einer fest eingestellten 115200-bit/s-Schnittstelle zum Rechner (die Beispiel-Init-Zeichenkette schaltet das Echo des Modems und die Ergebniscodes ab, läßt Modem-/Computer-Datenträgersignalerkennung (DCD) die Datenträgersignalerkennung des Modems/Modems verfolgen, erzeugt ein DTR, das zum Beenden der Verbindung führt und schaltet die automatische Antwort nach einmaligem Klingeln an) | ||
Antwort nach einmaligem Klingeln an) | <syntaxhighlight lang="bash" highlight="1"> | ||
/sbin/agetty --wait-cr --init-string 'ATE0Q1&D2&C1S0=1\015' 115200 ttyS1 | /sbin/agetty --wait-cr --init-string 'ATE0Q1&D2&C1S0=1\015' 115200 ttyS1 | ||
</syntaxhighlight> | |||
== | === Problembehebung === | ||
Die Baudratenerkennungsfunktionalität (die Option --extract-baud) verlangt, dass agetty früh genug nach dem Abschluss des Einwählprozesses eingeplant wird (innerhalb von 30 ms bei Modems, die | |||
die | mit 2400 Baud funktionieren) | ||
* Für einen robusteren Betrieb verwenden Sie die Option --extract-baud immer in Kombination mit mehreren Baudraten im Befehlszeilenargument, so dass die | |||
Verarbeitung von BREAK aktiviert ist | |||
Der Text in der Datei /etc/issue (oder anderer) und die Eingabeaufforderung werden immer mit 7-Bit-Zeichen und Space-Parität ausgegeben | |||
Die Baudratenerkennungsfunktionalität (die Option --extract-baud) verlangt, dass das Modem eine Statusmeldung nach dem Hochziehen der DCD-Leitung ausgibt | |||
=== Diagnose === | |||
Abhängig davon, wie das Programm konfiguriert wurde, werden alle Diagnoseinformationen auf das Konsolengerät geschrieben oder über die syslog(3)-Funktionalität berichtet | |||
und | * Fehlernachrichten werden erstellt, falls das Argument Port kein Terminalgerät festlegt; falls es keinen Utmp-Eintrag für den aktuellen Prozess gibt (nur System V) und so weiter | ||
== Konfiguration == | |||
agetty liest die Konfigurationsdatei /etc/login.defs (siehe [[login.defs]](5)) | |||
* Beachten Sie, dass die Konfigurationsdatei Teil eines anderen Pakets sein könnte (z. B. shadow-utils) | |||
* Die folgenden Konfigurationseinträge sind für agetty relevant | |||
{| class="wikitable options" | |||
! Variable !! Typ !!Beschreibung | |||
|- | |||
| LOGIN_PLAIN_PROMPT || boolesch || Weist agetty an, dass die Ausgabe des Rechnernamens in der Eingabeaufforderung der Anmeldung unterdrückt werden soll | |||
* Dies ist die Alternative zur Befehlszeilenoption --nohostname | |||
* Der Standardwert ist no | |||
|- | |||
|} | |||
=== Dateien === | |||
{| class="wikitable options" | |||
! Datei !! Beschreibung | |||
|- | |||
| /var/run/utmp || Systemstatusdatei | |||
|- | |||
| /etc/issue || wird vor der Anmeldeeingabeaufforderung angezeigt | |||
|- | |||
| /etc/os-release</br>/usr/lib/os-release || enthält die Identifikationsdaten des Betriebssystems | |||
|- | |||
| /dev/console || dazu, dass Probleme gemeldet werden (falls syslog(3) nicht verwendet wird) | |||
|- | |||
| /etc/inittab || ist die init(8)-Konfigurationsdatei für einen SysV-artigen Init-Daemon | |||
|} | |||
== Sicherheit == | |||
Falls Sie die Optionen --login-program und --login-options verwenden, seien Sie sich bewusst, dass ein bösartiger Benutzer versuchen könnte, Anmeldenamen mit eingebetteten Optionen anzugeben, | |||
die dann an das verwendete Anmeldeprogramm weitergegeben werden | |||
* agetty prüft auf führende »-« und stellt sicher, dass Anmeldenamen als ein Parameter weitergegeben werden (daher werden | |||
eingebettete Leerzeichen keinen weiteren Parameter erzeugen), aber abhängig davon, wie das Anmeldeprogramm die Befehlszeile auswertet, könnte das nicht ausreichen | |||
* Prüfen Sie, dass das | |||
verwendete Anmeldeprogramm nicht auf diese Art missbraucht werden kann | |||
Einige Programme verwenden »--«, um anzuzeigen, dass der Rest der Befehlszeile nicht als Optionen interpretiert werden sollte | |||
* Verwenden Sie, falls vorhanden, diese Funktionalität, indem Sie | |||
»--« übergeben, bevor der Benutzernamme mit \u übergeben wird | |||
=== Zugangsberechtigungen === | |||
agetty unterstützt die Konfiguration mittels Systemd-Zugangsberechtigungen (siehe https://systemd.io/CREDENTIALS/) | |||
* agetty liest die folgenden Systemd-Zugangsberechtigungen | |||
* agetty.autologin (Zeichenkette) | |||
Falls gesetzt, wird agetty so eingerichtet, dass der angegebene Benutzer automatisch ohne Eingabe von Benutzername und Passwort angemeldet wird, ähnlich wie mit der Option --autologin | |||
== Anhang == | |||
=== Siehe auch === | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | |||
* [[/etc/issue]] | |||
* [[getty]] | |||
==== Dokumentation ==== | |||
===== Man-Page ===== | |||
# AGETTY(8) System-Administration AGETTY(8) | |||
===== Info-Pages ===== | |||
==== Links ==== | |||
===== Weblinks ===== | |||
{{DEFAULTSORT:agetty}} | |||
{{DISPLAYTITLE:agetty}} | |||
[[Kategorie:util-linux]] | |||
[[Kategorie:tty]] | |||
</noinclude> | |||
Aktuelle Version vom 1. Januar 2025, 02:37 Uhr
agetty - Alternativer Linux Getty
Beschreibung
agetty öffnet einen TTY-Port, bittet um einen Anmeldenamen und startet den Befehl /bin/login
- Es wird normalerweise durch init(8) aufgerufen
agetty verfügt über mehrere nicht standardisierte Funktionalitäten, die für Stand- und Einwählleitungen nützlich sind
- Gleicht die TTY-Einstellungen für Paritätsbits und die Lösch-, Kill-, Zeilenende- und Großschriftzeichen an, wenn es den Anmeldenamen liest
- Das Programm kann sowohl mit 7-Bit-Zeichen mit gerader, ungerader, keiner oder Space-Parität als auch mit 8-Bit-Zeichen ohne Parität umgehen
- Die folgenden Sonderzeichen werden erkannt: Steuerungstaste-U (kill), Entfernen und Rückschritt (Löschen), Zeilenumbruch und Zeilenvorschub (Zeilenende)
- Siehe auch die Optionen --erase-chars und --kill-chars
- Ermittelt optional die Baudrate aus den von Hayes™-kompatiblen Modems erstellten CONNECT-Nachrichten
- Legt optional nicht auf, wenn ihm eine bereits offene Leitung übergeben wird (nützlich für Rückrufanwendungen)
- Zeigt optional den Inhalt der Datei /etc/issue nicht an
- Zeigt optional alternative »issue«-Dateien oder -Verzeichnisse statt /etc/issue oder /etc/issue.d an
- Fragt optional nicht nach einem Anmeldenamen
- Startet optional ein nicht vorgegebenes Anmeldeprogramm statt /bin/login
- Schaltet optional Hardware-Flusssteuerung ein
- Erzwingt optional, dass die Leitung lokal und keine Signalerkennung notwendig ist
Dieses Programm verwendet die Dateien /etc/gettydefs (System V) oder /etc/gettytab (SunOS 4) nicht
Installation
agetty ist Teil des Pakets util-linux
Aufruf
agetty [Optionen] Port [Baudrate...] [Terminal]
Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
-8 | --8bits | Es wird angenommen, dass das TTY 8-Bit-korrekt ist, daher wird die Paritätserkennung abgeschaltet | |
-a | --autologin | Benutzername | Der angegebene Benutzer wird ohne Abfrage eines Benutzernamens oder Passworts automatisch angemeldet
|
-c | --noreset | Terminal-Cflags (Steuermodi) werden nicht zurückgesetzt
| |
-E | --remote | Typischerweise wird dem Befehl login(1) ein Rechnernamen in der Ferne übergeben, wenn es von etwas wie telnetd(8) aufgerufen wird
| |
-f | --issue-file Pfad | Gibt eine durch Doppelpunkte (»:«) getrennte Liste anzuzeigender Dateien und Verzeichnisse statt /etc/issue (oder anderen) an
| |
--show-issue | zeigt die aktuelle Issue-Datei (oder andere) im aktuellen Terminal an und beendet das Programm
| ||
-h | --flow-control | Hardwareflusssteuerung (RTS/CTS) aktivieren
| |
-H | --host | Fake-Rechner | Schreibt den angegebenen Fake-Rechner in die Datei »utmp«
|
-i | --noissue | Zeigt den Inhalt von /etc/issue (oder anderen) vor der Ausgabe der Anmeldeeingabeaufforderung nicht an
| |
-I | --init-string | Init-Zeichenkette | Setzt eine initiale Zeichenkette, die an das TTY oder Modem vor dem Senden von allem anderen übertragen werden soll
|
-J | --noclear | Löscht den Bildschirm nicht, bevor nach dem Anmeldenamen gefragt wird
| |
-l | --login-program | Anmeldeprogramm | Ruft ein spezielles Anmeldeprogramm statt /bin/login auf
|
-L | --local-line | [=Modus] | Steuert den Leitungsschalter CLOCAL
|
-m | --extract-baud | Versucht, die Baudrate aus der von Hayes(tm)-kompatiblen Modems erstellten CONNECT-Statusmeldung auszulesen
Baudraten auf der Befehlszeile aufzählen | |
--list-speeds | Unterstützte Baudraten anzeigen
| ||
-n | --skip-login | Fragt den Benutzer nicht nach einem Anmeldenamen
| |
-N | --nonewline | Keinen Zeilenumbruch vor dem Schreiben von /etc/issue anzeigen | |
-o | --login-options | Anmeldeoptionen | Optionen und Argumente, die an login(1) übergeben werden
|
--login-options | '-h darkstar -- \u' | Siehe --autologin | |
--login-program --remote |
Bitte lesen Sie unten den SICHERHEITSHINWEIS, bevor Sie diese Option benutzen | ||
-p | --login-pause | Wartet auf einen Tastendruck, bevor eine Anmeldeaufforderung ausgegeben wird
| |
-r | --chroot | Verzeichnis | Ändert das Wurzelverzeichnis auf das angegebene Verzeichnis |
-R | --hangup | Ruft vhangup(2) auf, um auf dem angegebenen Terminal virtuell aufzulegen | |
-s | --keep-baud | versucht, die vorhandene Baud-Rate beizubehalten
| |
-t | --timeout Dauer | Beendet sich, falls der Benutzername nicht innerhalb von Dauer Sekunden eingelesen werden konnte
| |
-U | --detect-case | Schaltet die Unterstützung für die Erkennung von Terminals ein, die nur Großschreibung beherrschen
| |
-w | --wait-cr | Wartet bis der Benutzer oder das Modem ein Zeilenumbruch- oder Wagenrücklaufzeichen gesendet hat, bevor die (oder andere) Datei(n) /etc/issue und eine Eingabeaufforderung gesandt wird
| |
--nohints | Keine Hinweise zu den Num-, Rollen- und Feststelltasten anzeigen | ||
--nohostname | gibt keinen Rechnernamen aus (standardmäßig wird der Rechnername ausgegeben)
| ||
--long-hostname | Standardmäßig wird der Rechnername nur bis zum ersten Punkt angezeigt
| ||
--erase-chars | Zeichenkette | Diese Option legt zusätzliche Zeichen fest, die als Rückschritt (»das letzte Zeichen ignorieren«) interpretiert werden sollen, wenn der Benutzer den Anmeldenamen eingibt
| |
--kill-chars | Zeichenkette | Diese Option legt zusätzliche Zeichen fest, die als Bereinigen (»alle vorherigen Zeichen ignorieren«) interpretiert werden sollen, wenn der Benutzer den Anmeldenamen eingibt
| |
--chdir | Verzeichnis | Vor dem Anmelden das Verzeichnis wechseln | |
--delay | Anzahl | wartet diese Anzahl an Sekunden, bevor ein TTY geöffnet wird | |
--nice | Nummer | führt die Anmeldung mit dieser Priorität aus | |
--reload | Fordert alle laufenden Instanzen von agetty auf, sich neu zu laden und ihre angezeigten Anmeldeaufforderungen zu aktualisieren, falls der Benutzer noch nicht mit der Anmeldung begonnen hat
| ||
-h | --help | zeigt einen Hilfetext an und beendet das Programm | |
-V | --version | zeigt Versionsinformationen an und beendet das Programm |
Argumente
Argumente | Beschreibung |
---|---|
Port | Ein Pfadname relativ zum Verzeichnis /dev
|
Baudrate,... | Eine kommatagetrennte Liste einer oder mehrerer Baudraten
|
Terminal | Der Wert, der für die Umgebungsvariable TERM verwendet werden soll
|
Umgebungsvariablen
Exit-Status
Anwendung
Dieser Abschnitt zeigt Beispiele für das Prozessfeld eines Eintrages in der Datei /etc/inittab
- Sie müssen für die anderen Felder geeignete Werte voranstellen
- Siehe inittab(5) für weitere Details
- Für eine hartverdrahtete Leitung oder ein Konsolen-TTY
/sbin/agetty 9600 ttyS1
- Für ein direkt verbundenes Terminal ohne korrekte »carrier-detect«-Verkabelung
(versuchen Sie das, falls Ihr Terminal nicht reagiert, statt Ihnen eine »password«-Eingabeaufforderung anzuzeigen)
/sbin/agetty --local-line 9600 ttyS1 vt100
- Für eine altertümliche Einwählleitung mit einem 9600/2400/1200-Baud-Modem
/sbin/agetty --extract-baud --timeout 60 ttyS1 9600,2400,1200
- Hayes-Modem
Für ein Hayes-Modem mit einer fest eingestellten 115200-bit/s-Schnittstelle zum Rechner (die Beispiel-Init-Zeichenkette schaltet das Echo des Modems und die Ergebniscodes ab, läßt Modem-/Computer-Datenträgersignalerkennung (DCD) die Datenträgersignalerkennung des Modems/Modems verfolgen, erzeugt ein DTR, das zum Beenden der Verbindung führt und schaltet die automatische Antwort nach einmaligem Klingeln an)
/sbin/agetty --wait-cr --init-string 'ATE0Q1&D2&C1S0=1\015' 115200 ttyS1
Problembehebung
Die Baudratenerkennungsfunktionalität (die Option --extract-baud) verlangt, dass agetty früh genug nach dem Abschluss des Einwählprozesses eingeplant wird (innerhalb von 30 ms bei Modems, die mit 2400 Baud funktionieren)
- Für einen robusteren Betrieb verwenden Sie die Option --extract-baud immer in Kombination mit mehreren Baudraten im Befehlszeilenargument, so dass die
Verarbeitung von BREAK aktiviert ist
Der Text in der Datei /etc/issue (oder anderer) und die Eingabeaufforderung werden immer mit 7-Bit-Zeichen und Space-Parität ausgegeben
Die Baudratenerkennungsfunktionalität (die Option --extract-baud) verlangt, dass das Modem eine Statusmeldung nach dem Hochziehen der DCD-Leitung ausgibt
Diagnose
Abhängig davon, wie das Programm konfiguriert wurde, werden alle Diagnoseinformationen auf das Konsolengerät geschrieben oder über die syslog(3)-Funktionalität berichtet
- Fehlernachrichten werden erstellt, falls das Argument Port kein Terminalgerät festlegt; falls es keinen Utmp-Eintrag für den aktuellen Prozess gibt (nur System V) und so weiter
Konfiguration
agetty liest die Konfigurationsdatei /etc/login.defs (siehe login.defs(5))
- Beachten Sie, dass die Konfigurationsdatei Teil eines anderen Pakets sein könnte (z. B. shadow-utils)
- Die folgenden Konfigurationseinträge sind für agetty relevant
Variable | Typ | Beschreibung |
---|---|---|
LOGIN_PLAIN_PROMPT | boolesch | Weist agetty an, dass die Ausgabe des Rechnernamens in der Eingabeaufforderung der Anmeldung unterdrückt werden soll
|
Dateien
Datei | Beschreibung |
---|---|
/var/run/utmp | Systemstatusdatei |
/etc/issue | wird vor der Anmeldeeingabeaufforderung angezeigt |
/etc/os-release /usr/lib/os-release |
enthält die Identifikationsdaten des Betriebssystems |
/dev/console | dazu, dass Probleme gemeldet werden (falls syslog(3) nicht verwendet wird) |
/etc/inittab | ist die init(8)-Konfigurationsdatei für einen SysV-artigen Init-Daemon |
Sicherheit
Falls Sie die Optionen --login-program und --login-options verwenden, seien Sie sich bewusst, dass ein bösartiger Benutzer versuchen könnte, Anmeldenamen mit eingebetteten Optionen anzugeben, die dann an das verwendete Anmeldeprogramm weitergegeben werden
- agetty prüft auf führende »-« und stellt sicher, dass Anmeldenamen als ein Parameter weitergegeben werden (daher werden
eingebettete Leerzeichen keinen weiteren Parameter erzeugen), aber abhängig davon, wie das Anmeldeprogramm die Befehlszeile auswertet, könnte das nicht ausreichen
- Prüfen Sie, dass das
verwendete Anmeldeprogramm nicht auf diese Art missbraucht werden kann
Einige Programme verwenden »--«, um anzuzeigen, dass der Rest der Befehlszeile nicht als Optionen interpretiert werden sollte
- Verwenden Sie, falls vorhanden, diese Funktionalität, indem Sie
»--« übergeben, bevor der Benutzernamme mit \u übergeben wird
Zugangsberechtigungen
agetty unterstützt die Konfiguration mittels Systemd-Zugangsberechtigungen (siehe https://systemd.io/CREDENTIALS/)
- agetty liest die folgenden Systemd-Zugangsberechtigungen
- agetty.autologin (Zeichenkette)
Falls gesetzt, wird agetty so eingerichtet, dass der angegebene Benutzer automatisch ohne Eingabe von Benutzername und Passwort angemeldet wird, ähnlich wie mit der Option --autologin
Anhang
Siehe auch
Dokumentation
Man-Page
- AGETTY(8) System-Administration AGETTY(8)
Info-Pages
Links
Weblinks