如何强制 tty 使用 Sh 或 Bash

如何强制 tty 使用 Sh 或 Bash

我为我的 Linux 制作了一个交互式 shell,并对其进行了 chsh 编辑以对其进行测试。但是,它有一个错误,我现在无法返回我的 bash/sh。我无法在我的机器上输入任何命令或执行任何操作。

我使用的是 Ubuntu 20.04。

我尝试使用一个参数来 ssh 进入机器,告诉它运行 sh/bash,但它似乎不起作用,并退回到我制作的 shell。

这是我尝试过的:

ssh username@hostname -p 2222 bash
ssh username@hostname -p 2222 -t bash

我的 root 帐户没有密码,因此未激活(我认为),并且我没有其他用户帐户来为我执行 chsh。

如何强制我的机器在 tty 上使用 Sh 或 Bash,以便我可以修复我的 shell 并使用我的机器?

或者除了重新安装计算机之外还有什么方法可以让我摆脱外壳?

答案1

由于此处讨论的原因,您不太可能通过 SSH 解决此问题

但是,如果您可以物理访问计算机,那么您当然不需要重新安装。

首先,尝试暂停启动并编辑 grub 命令行以设置rw init=/bin/shrw init=/bin/bash。然后编辑该/etc/passwd文件,将vipw您的登录 shell 更改为合理的内容。看

如果这不可能,那么您始终可以使用实时恢复 CD/DVD/USB,从中您可以挂载旧根分区并编辑其 /etc/passwd (或 chroot 到旧系统并使用 chsh - 但这更复杂)。

答案2

如果您可以以root身份登录(本地或远程),则可以使用chsh(1)更改登录shell(或使用vipw(1)编辑/etc/passwd和朋友,或直接编辑文件)。

当心。不要相信网络上随机的家伙,请阅读并理解您正在执行的命令。

相关内容