웹사이트에서 이 질문을 찾지 못한 것에 놀랐습니다. 그래서 오늘은 $
신규유저로 로그인을 하고 나니 이런 말이 나오더군요. 내 기본 사용자의 프롬프트가 로 끝나기 때문에 이것은 예상치 못한 일입니다 username@computername:~$
.
그렇다면 다른 쉘에서 bash로 어떻게 전환합니까?
답변1
알 수 없는 쉘이 절대 명령 실행을 지원한다고 가정하면 다음을 시도해 볼 수 있습니다./bin/bash
기본 쉘을 변경하려면 다음을 사용합니다 chsh(1)
.chsh -s /bin/bash $USER
답변2
를 입력합니다 bash
. 이를 영구적으로 적용하려면 /bin/bash
기본 셸을 /etc/passwd
.
내 일부 내용은 다음과 같습니다 /etc/passwd
.
avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin
마지막 필드에는 셸이 포함되어 있습니다. 마지막 필드를 :
유효하거나 유효하지 않은 셸로 변경하세요. 둘 다 사용자가 실제 로그인 쉘을 가지고 있지 않다는 /bin/false
것을 의미 /sbin/nologin
하지만, pam이 올바르게 설정되지 않았다고 해서 로그인할 수 없다는 의미는 아닙니다. (나는 Arch Linux에서 그래픽으로 로그인할 수 있기 때문에 이에 대한 버그를 보고했습니다. 그러나 로그인 쉘은 필요하지 않습니다). 유효한 쉘입니다. 시스템의 유효한 쉘 목록은 참고자료를 참조 /bin/bash
하세요 . 관심이 있으시면 이건 내 것입니다 ./bin/zsh
/etc/shells
/etc/shells
/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash
예 , 구조화된 텍스트 파일과 TIMTOWTDI를 사용하여 동일한 작업을 수행할 수 있습니다 chsh
.usermod
답변3
만약에chsh또는 구성을 수동으로 편집해도 작동하지 않지만 ~/.profile 스크립트에 로그인할 때 다음 줄을 추가하세요.
exec /bin/bash --login