用户名在 SSH shell 上显示为“bash-3.0”

用户名在 SSH shell 上显示为“bash-3.0”

我正在 Redhat 服务器上工作,其中一个用户名在“SSH Secure Shell Client”上显示为“bash-3.0”。

他的名字在 下显示正确/etc/passwd。怎么会发生这种事?
我怎样才能解决这个问题?

答案1

用户的默认 shell 与其他 shell 是否不同? (也在/etc/passwd)这可能是潜在的原因。

在终端中启动 bash 时,您会收到“bash”提示,而无需配置自定义提示。由于这种情况只发生在一个用户身上,因此他们可能拥有与其他用户不同的登录 shell,或者他们可能在登录脚本或终端中启动 bash。

如果默认 shell 没问题(与其他用户匹配),则尝试确定 或 是否.bashrc.bash_profile其他用户的主文件夹中的内容不同? (也可能是~/.profile~/.zprofile或者~/.login取决于你使用什么......)

答案2

从/etc/skel/恢复文件(.bashrc和.bash_profile)后解决了,看来它们被误删除了

答案3

删除配置文件后,您看到 bash 版本而不是用户名的原因是在这些文件中设置了命令提示符(通常包含用户名)。调用后您会看到完全相同的结果bash --norc

有趣的是,您的 /etc/profile 中没有设置命令提示符,这在现代系统中很常见;通常,你有类似的东西

如果[“$PS1”];然后
  如果[“$BASH”];然后
    PS1='\u@\h:\w\$ '
    如果 [ -f /etc/bash.bashrc ];然后
        。 /etc/bash.bashrc
  别的
    if [ "`id -u`" -eq 0 ];然后
      PS1='#'
    别的
      PS1='$'

相关内容