当我什至无法登录时如何解决“登录:无外壳:没有这样的文件或目录”?

当我什至无法登录时如何解决“登录:无外壳:没有这样的文件或目录”?

我安装了鱼鱼(一个用户友好的交互式命令行外壳)在Linux服务器上,后来有人卸载了它但我不知道。我chsh -s /usr/local/bin/fish不小心运行后,现在无法登录服务器。显示错误消息“登录:没有外壳:没有这样的文件或目录”,这显然表明贝类不再存在。

服务器只提供了CLI接口,那么我连登录都无法登录的情况下如何更改登录shell呢?

答案1

如果您有权访问 root 帐户,则可以使用 更改用户的 shell chsh -u user -s $SHELL

如果您有权访问引导过程,则可以将其附加init=$SHELL到单用户 shell,您可以在其中修复此问题,再次使用chsh -u user -s $SHELL(某些使用带有 initrd 映像的两阶段引导的系统可能需要您使用real_init) 。您可能需要重新挂载包含/etc/passwd读写(使用mount -o remount,rw /或类似)的文件系统。

否则,如果您可以su从另一个用户进入该用户,请尝试su user -c $SHELL,或者如果您可以 ssh 进入该用户,您可以尝试类似的操作ssh user@localhost $SHELL

您还可以启动到 Live CD/USB,手动安装/和修复/etc/passwd

答案2

我有同样的问题,这个解决方案对我有用:

  1. 在实时模式下使用 Live CD 启动(我使用 debían 7.6)
  2. 在实时终端中,运行以下命令获取 root 访问权限:passwd root
  3. 挂载崩溃发行版分区的磁盘
  4. 转到该磁盘并运行以下命令:cat etc/shells
  5. 删除nano etc/passwd鱼引用并输入第 4 点的有效控制台名称
  6. 重新启动并享受。

答案3

当尝试登录时,我收到以下消息: 无法执行 /sbin/nologin: 没有这样的文件或目录

这就是我所做的,它对我有用。

  1. 我使用另一个具有超级用户权限的帐户登录系统
  2. 输入以下命令:

sudo chsh -u 用户 -s $SHELL

其中 user 是有问题的帐户名

  1. 退出系统
  2. 使用有问题的帐户名登录

答案4

我在 Elementary OS Loki 中也遇到了同样的问题。为了解决该问题,我执行了以下操作

  1. 首先我删除与 zsh 相关的所有内容sudo apt-get 删除 zsh && apt-get 自动删除
  2. 之后我编辑了/etc/密码文件并发现 root 用户的 shell 未定义,所以我编辑了 shell /bin/bash 这一切都帮助我解决了问题。

相关内容