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 getty
configuració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.