我为我的 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/sh
或rw init=/bin/bash
。然后编辑该/etc/passwd
文件,将vipw
您的登录 shell 更改为合理的内容。看
如果这不可能,那么您始终可以使用实时恢复 CD/DVD/USB,从中您可以挂载旧根分区并编辑其 /etc/passwd (或 chroot 到旧系统并使用 chsh - 但这更复杂)。
答案2
如果您可以以root身份登录(本地或远程),则可以使用chsh(1)
更改登录shell(或使用vipw(1)
编辑/etc/passwd
和朋友,或直接编辑文件)。
当心。不要相信网络上随机的家伙,请阅读并理解您正在执行的命令。