저는 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='$' 필리핀 제도 필리핀 제도 필리핀 제도