Forzar bash como shell utilizado para iniciar sesión en la consola serie

Forzar bash como shell utilizado para iniciar sesión en la consola serie

Estoy ejecutando Ubuntu Server 20.04 sin cabeza y, por lo general, de forma remota a través de SSH. Sin embargo, también está conectado a través de serie RS232 a un servidor terminal (un Digi CM 16) para el registro de la consola del kernel y como método de gestión de copias de seguridad.

Aquí está la cuestión: uso ZSH con algunos complementos ultraelegantes. Funciona muy bien a través de SSH. De serie, no tanto. Los archivos de registro del servidor terminal generalmente no son muy coherentes debido a todos los caracteres de control que ZSH genera.

¿Cómo fuerzo el inicio de sesión de la consola serie para usar BASH, aunque el shell predeterminado de mi usuario sea ZSH?

Esto es lo que quiero:

Método de inicio de sesión Shell que quiero que me presenten
SSH ZSH (valor predeterminado del usuario)
Inicio de sesión en la consola serie INTENTO
Conecte el monitor y el teclado e inicie sesión físicamente no me importa

Intenté cambiar la gettyconfiguración de ttyS0, y parece que la única opción es cambiar el ejecutable de inicio de sesión predeterminado /bin/login, pero no creo que quiera hacerlo. Todavía quiero iniciar sesión con una contraseña, solo quiero cambiar el shell generado después de iniciar sesiónjustosi inicias sesión desdettyS0

Respuesta1

Probablemente la forma más sencilla sea agregar código en ~/.zprofile para detectar si está en la línea serie y luego realizar alguna acción.

Puede ejecutar bash desde allí, pero alternativamente, puede desactivar las ruidosas extensiones zsh y restablecer el mensaje a algo simple y seguir usando zsh.

Sin embargo, tenga en cuenta que mientras juega con esto, debe mantener un segundo shell abierto (o tener una cuenta de puerta trasera) en caso de que corrompa algo que impida que su cuenta obtenga cualquier shell.

información relacionada