我可以登录到非默认 shell 吗?

Jav*_*era 6 server ssh 8.04 command-line login

我爱鱼。我有一个运行一些服务的不错的 Ubuntu 8.04 服务器。所以我像过去一样编辑了 /etc/passwd 文件,将我的默认 shell 从 bash 更改为 fish。而且,是的,我打错了字(顺便说一句:我知道 chsh,我就是那么愚蠢和过于自信)。求求你别笑了

正如预期的那样,现在我无法登录。是否可以在不重新启动服务器的情况下登录?我知道我可以在安全模式下重新启动服务器并解决混乱,但我想避免它。

哦,是的,我在该服务器中没有其他具有 sudo 权限的用户。别再笑了。

顺便说一句,我使用 ssh 弄得一团糟,但我可以轻松物理访问服务器,它就在几个房间之外。

Kee*_*ook 6

抱歉不行; 你已经把自己锁在外面了。如果 shell 丢失,SSH 将不会让您登录。这是尝试的样子/var/log/auth.log

Dec 23 15:04:59 ubuntu sshd[5585]: User kees not allowed because shell /bin/fish does not exist
Run Code Online (Sandbox Code Playgroud)

控制台上的 TTY 登录将始终尝试启动您配置的 shell。如果没有其他具有sudo权限的用户,您需要启动到单用户模式来修复它。:(