我正在 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='$' 菲 菲 菲