Ich verwende Ubuntu Server 20.04 ohne Monitor und greife normalerweise per SSH remote darauf zu. Es ist jedoch auch über serielle RS232 mit einem Terminalserver (einem Digi CM 16) für die Kernel-Konsolenprotokollierung und als Backup-Verwaltungsmethode verbunden.
Das ist der Punkt: Ich verwende ZSH mit einigen ultra-schicken Add-Ons. Funktioniert super über SSH. Seriell nicht so sehr. Die Logdateien vom Terminalserver sind aufgrund der vielen Steuerzeichen, die ZSH um sich wirft, normalerweise nicht sehr kohärent.
Wie erzwinge ich die Verwendung von BASH bei der seriellen Konsolenanmeldung, obwohl die Standard-Shell meines Benutzers ZSH ist?
Das möchte ich:
Vorgehensweise beim Einloggen | Shell, die ich erhalten möchte |
---|---|
SSH | ZSH (Benutzerstandard) |
Anmeldung bei der seriellen Konsole | BASH |
Schließen Sie Monitor und Tastatur an und melden Sie sich physisch an | ist mir egal |
Ich habe versucht, die getty
Einstellungen für zu ändern ttyS0
, und es scheint, dass die einzige Möglichkeit darin besteht, die standardmäßige ausführbare Anmeldedatei von zu ändern /bin/login
, aber ich glaube nicht, dass ich das tun möchte? Ich möchte mich immer noch mit einem Passwort anmelden, möchte nur die Shell ändern, die nach der Anmeldung gestartet wirdNurbei der Anmeldung vonttyS0
Antwort1
Der einfachste Weg besteht wahrscheinlich darin, Code in ~/.zprofile hinzuzufügen, um festzustellen, ob Sie sich auf der seriellen Leitung befinden, und dann Maßnahmen zu ergreifen.
Sie könnten von dort aus Bash ausführen, aber alternativ könnten Sie störende ZSH-Erweiterungen deaktivieren, die Eingabeaufforderung auf etwas Einfacheres zurücksetzen und trotzdem ZSH verwenden.
Beachten Sie jedoch, dass Sie, während Sie damit spielen, eine zweite Shell geöffnet halten sollten (oder über ein Hintertürkonto verfügen), für den Fall, dass Sie etwas beschädigen, das verhindert, dass Ihr Konto auf eine Shell zugreifen kann.