当 ssh 进入我的服务器时,我如何在 bash 中启动?

37 linux debian bash sh

我有一个托管的 Debian 服务器。当我通过 ssh 登录时,我看到了一个 sh 环境。如何更改它以便我在 bash 环境中开始?

jor*_*anm 43

作为普通用户,您可以使用该chsh命令更改默认登录 shell 。下面是一个例子:

chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用 usermod 作为 root:

usermod -s /bin/bash username
Run Code Online (Sandbox Code Playgroud)

  • usermod 很有魅力。当我添加新用户时,有什么方法可以将其设置为默认为 bash,还是每次都必须运行该命令? (2认同)

UKM*_*key 8

对于您尝试使用共享帐户(无论出于何种原因)并且无法更改默认 shell 的情况,您可以运行

ssh -t <user@hostname> bash -l
Run Code Online (Sandbox Code Playgroud)

如果你需要让你的环境不受其他 shell 的影响,那么你可以先运行那个 shell;例如

ssh -t <user@hostname> ksh -c bash -l
Run Code Online (Sandbox Code Playgroud)


Dir*_*tel 6

您编辑/etc/passwd最后一个条目是默认 shell 的位置。让它/bin/bash

或者,您可以更改/bin/sh不是 bash的系统默认值。

  • 强烈建议不要手动编辑`/etc/passwd`。编辑错误可能会中断所有用户的登录,需要恢复媒体或启动到单用户模式进行修复。有诸如“usermod”之类的工具可用于更改“/etc/passwd”。 (4认同)
  • 很高兴听到你非常小心。不是每个人都有。关于更新的另一个注意事项,将 `/bin/bash` 作为 `/bin/sh` 启动与使用 `--posix` 执行它是一样的,这可能会产生不良结果。 (2认同)