사용자 이름은 SSH 셸에서 "bash-3.0"으로 표시됩니다.

사용자 이름은 SSH 셸에서 "bash-3.0"으로 표시됩니다.

저는 Redhat 서버에서 작업 중이며 사용자 이름 중 하나가 "SSH Secure Shell Client"에서 "bash-3.0"으로 나타납니다.

그의 이름은 아래에 정확하게 나타납니다 /etc/passwd. 어떻게 이런 일이 일어날 수 있습니까?
이 문제를 어떻게 해결할 수 있나요?

답변1

사용자의 기본 쉘은 다른 쉘과 다릅니까? (또한 /etc/passwd) 이것이 근본적인 이유일 수도 있습니다.

터미널에서 bash를 시작하면 사용자 정의 프롬프트를 구성하지 않고 "bash" 프롬프트가 표시됩니다. 이는 한 명의 사용자에게만 발생하므로 다른 사용자와 다른 로그인 셸을 사용하거나 로그인 스크립트 또는 터미널에서 bash를 시작할 수 있습니다.

기본 셸이 정상이면(다른 사용자와 일치) 다른 사용자의 홈 폴더에 있는 것과 .bashrc다른지 확인해 보세요 . .bash_profile(그것도 그럴 수도 있고 , ~/.profile무엇 을 사용하는지에 따라 다릅니다...)~/.zprofile~/.login

답변2

/etc/skel/에서 파일(.bashrc 및 .bash_profile)을 복원한 후 해결되었습니다. 실수로 삭제된 것 같습니다.

답변3

구성 파일을 제거한 후 사용자 이름 대신 bash 버전이 표시되는 이유는 명령 프롬프트(일반적으로 사용자 이름이 포함됨)가 이러한 파일에 설정되어 있기 때문입니다. 호출 후에도 정확히 동일한 결과가 표시됩니다 bash --norc.

흥미롭게도 /etc/profile에는 일반적으로 최신 시스템에서 흔히 볼 수 있는 명령 프롬프트가 설정되어 있지 않습니다.

if ["$PS1"];
  if ["$BASH"];
    PS1='\u@\h:\w\$ '
    if [ -f /etc/bash.bashrc ];
        . /etc/bash.bashrc
    필리핀 제도
  기타
    if [ "`id -u`" -eq 0 ];
      PS1='#'
    기타
      PS1='$'
    필리핀 제도
  필리핀 제도
필리핀 제도

관련 정보