我正在无头运行 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。