强制使用 bash 作为串行控制台登录的 shell

强制使用 bash 作为串行控制台登录的 shell

我正在无头运行 Ubuntu Server 20.04,通常通过 SSH 远程访问它。但是,它也通过串行 RS232 连接到终端服务器(Digi CM 16),用于内核控制台日志记录和作为备份管理方法。

事情是这样的:我使用 ZSH 和一些非常花哨的附加组件。通过 SSH 运行良好。串行则不然。由于 ZSH 到处都是控制字符,因此来自终端服务器的日志文件通常不太连贯。

即使我的用户的默认 shell 是 ZSH,我如何强制串行控制台登录使用 BASH?

这是我想要的:

登录方法 我希望获得的 Shell
SSH ZSH(用户默认)
串行控制台登录 重击
插入显示器和键盘并物理登录 不在乎

我尝试过更改 的getty设置ttyS0,似乎唯一的选择是将默认登录可执行文件从 更改为/bin/login,但我觉得我不想这么做?仍然想用密码登录,只想更改登录后生成的 shell只是如果从登录ttyS0

答案1

可能最简单的方法是在 ~/.zprofile 中添加代码来检测您是否在串行线上,然后采取一些措施。

您可以从那里执行 bash,但或者,您可以禁用嘈杂的 zsh 扩展并将提示重置为简单的提示并仍然使用 zsh。

但请注意,当您使用此方法时,您应该保持第二个 shell 打开(或拥有后门帐户),以防您破坏某些东西导致您的帐户无法获取任何 shell。

相关内容