如果我将 shell 设置为无效程序并重新启动,会发生什么情况?

如果我将 shell 设置为无效程序并重新启动,会发生什么情况?

如果我将 shell 更改为类似 之类的东西/bin/abc,其中abc是随机的(甚至可能不存在),那么当我登录时会发生什么(假设我已将其添加到/etc/shells,因此chsh不会发出抱怨。)?它是否会切换到默认 shell,还是会给出错误并且不让我登录?

答案1

您将无法登录,必须请系统管理员修复它。

答案2

只需三行代码你就能自己找到答案:

# useradd -m -p $(mkpasswd test) -s /nix test
# login
sn-e0692 login: test
Password: 
Linux sn-e0692 2.6.32-bpo.5-amd64 #1 SMP Fri Jun 11 08:42:31 UTC 2010 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Cannot execute /nix: No such file or directory
# userdel -rf test

答案3

正如其他人已经回答的那样,您将无法登录到 shell 提示符......

如果您已经设置了 SSH,您可能能够使用它来修复问题(如果它以不同的方式处理 shell),或者至少让您使用 SCP 上传已更正的文件(例如定义您的用户帐户使用哪个 shell 的文件)。

FTP 可能无法(也不应该)访问您需要更新的文件,但我提到这一点是因为这可能会让您想到其他替代方案?您是否有一个运行某种文件管理控制台的 Web 服务器可以为您执行此操作?

相关内容