我爱鱼。我有一个不错的 Ubuntu 8.04 服务器运行一些服务。所以我编辑了 /etc/passwd 文件,就像我过去所做的那样,将我的默认 shell 从 bash 更改为 fish。而且,是的,我打错了(顺便说一句:我知道 chsh,我就是那么愚蠢和过度自信)。请别笑了
不出所料,现在我无法登录。是否可以在不重新启动服务器的情况下登录?我知道我可以在安全模式下重新启动服务器并解决问题,但我想避免它。
哦,是的,我在该服务器中没有其他具有 sudo 权限的用户。别再笑了。
顺便说一句,我使用 ssh 弄得一团糟,但我可以轻松地物理访问服务器,它就在几个房间之外。
抱歉不行; 你把自己锁在外面了。如果缺少外壳,SSH 将不允许您登录。这是尝试的样子
/var/log/auth.log
:控制台上的 TTY 登录将始终尝试启动您配置的 shell。如果没有其他具有
sudo
权限的用户,您将需要启动到单用户模式来修复它。:(如果您设置了 root 密码,您可以在机器本身上以 root 身份登录(在 X 中或通过按 alt-F1 在虚拟控制台上),或者作为非 sudoing 用户远程登录,然后使用切换到 root
su
在一个终端。当然,Ubuntu 默认情况下不允许您以 root 身份登录,所以这假设您之前已经更改了它。
如果你想将一些配置文件恢复到以前的状态,你总是可以尝试编辑它们,通过使用一些 Ubuntu CD 的 Live 版本启动你的服务器,安装 /etc 文件所在的实际分区并使用编辑它们六。
您还可以编辑文件 /etc/sudoers,以便让更多用户有权成为 root。