tty Login Timeout ändern - ArchLinux

10

Wenn ich mich in einem tty bei meiner Arch Linux-Box anmelde, tritt standardmäßig eine Zeitüberschreitung auf, nachdem ich meinen Benutzernamen und mein Kennwort eingegeben habe.

So geht es also

Login:  mylogin <enter>
Password:
(+ 60 seconds)
Login:

Wie Sie sehen, wird die Eingabeaufforderung wiederverwendet, wenn ich das Kennwort nicht eingebe. Ich möchte, dass es unbegrenzt auf mein Kennwort wartet, anstatt die Anmeldeaufforderung zu recyceln.

Ist das möglich?

Es scheint die --timeoutOption zu agettysein, was ich will. Ich habe jedoch versucht, dieses Flag in die getty-Dateien in einzufügen /usr/lib/systemd/system/(die Option wird standardmäßig nicht verwendet) und neu zu starten - es schien keine Auswirkung zu haben.

g33kz0r
quelle

Antworten:

11

agettyAnrufe loginnach dem Einlesen des Benutzernamens, sodass jede Zeitüberschreitung beim Lesen des Kennworts von ausgeführt wird login.

Um dies zu ändern, bearbeiten /etc/login.defsund ändern Sie den Wert LOGIN_TIMEOUT.

#
# Max time in seconds for login
#
LOGIN_TIMEOUT       60
Mark Plotnick
quelle
2
Wie würden Sie es unendlich lange dauern lassen?
Will Dereham
3
@AnEpicPerson Soweit ich sehen kann, ist es nicht dokumentiert, aber wenn ich den Code durchschaue, gibt es #define ALARM 60und timeout = getdef_unum ("LOGIN_TIMEOUT", ALARM); if (timeout > 0) { (void) alarm (timeout); }. Das LOGIN_TIMEOUT 0Einfügen von login.defs sollte daher jede Zeitüberschreitung deaktivieren.
Mark Plotnick
2
  1. In Arch werden standardmäßig Programme installiert /usr/lib. Sie sollten dort nicht (fast immer) manuell herumspielen; definitiv nicht mit systemd. systemdErmöglicht das Überschreiben von Standardeinheiten aus einem bestimmten Grund (siehe Abschnitt " Ladepfad für Einheiten " ).

  2. Ein Teil davon ist ein Sicherheitsproblem. Das Timeout wird erneut auf Fahrlässigkeit überprüft (z. B. geben Sie Ihr gesamtes Passwort ein, vergessen jedoch die Eingabetaste und werden von etwas abgelenkt). Sie sollten sich bewusst sein, dass das Deaktivieren hier nicht die sicherste Entscheidung ist.

  3. Wenn Sie eine Einheit bearbeiten oder überschreiben, müssen Sie sie ausführen systemctl daemon-reload, damit systemd die Änderung vollständig erkennt. Nach dem Erstellen der neuen Einheit in /etc/systemd/müssen Sie daemon-reloadund dann disabledie Standardeinheit und enableIhre neue Einheit. Dann sollte ein Neustart die gewünschten Ergebnisse liefern. ( Hinweis : Ich rate jedoch davon ab; siehe Punkt 2.)

HalosGhost
quelle
1
In Bezug auf Ihren Punkt 2. - Die praktische Bedeutung davon ist, dass meine 4-Jährige es schaffen kann, ihr 9-Buchstaben-Passwort einzugeben, bevor sie vereitelt wird. Wenn Ihre Antwort vollständig ist, finden Sie sie bitte in Ihrem Herzen, um mir eine Lösung für meine Frage zu geben.
g33kz0r
Ich hatte gedacht, dass Sie mit der --timeoutOption tatsächlich auf dem richtigen Weg sind , aber wenn Sie näher darauf eingehen (nämlich auf die agettyManpage), --timeoutbezieht sich die Option anscheinend auf die Eingabe des Benutzernamens und nicht auf das Passwort.
HalosGhost
@HalosGhost Beim Bearbeiten von Posts muss kein '$' vor Befehle gesetzt werden. Dies ist verschwenderisch und erschwert das Ausschneiden und Einfügen. Nur wenn Befehle und Ausgabe in einem Block vermischt sind
Zelda
1
@Zelda, ich bin mir nicht sicher, warum du das hier gepostet hast. Aber das werde ich mir merken.
HalosGhost