![bash를 수정하거나 SSH 로그인 시 /bin/bash를 자동으로 실행하는 방법](https://linux55.com/image/25302/bash%EB%A5%BC%20%EC%88%98%EC%A0%95%ED%95%98%EA%B1%B0%EB%82%98%20SSH%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%20%EC%8B%9C%20%2Fbin%2Fbash%EB%A5%BC%20%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
내 서버에 로그인하면 root
모든 것이 잘 작동하지만 로그인하면 myusername
bash가 작동하지 않습니다.
이 줄은 다음으로 시작됩니다.
$
바꾸다
myusername@myserver:~$
모든 특수 키(예: 화살표 키, Tab 키 등)는 작동하지 않습니다.
입력하면 bin/bash
다시 작동하지만 문제를 해결하거나 bin/bash
로그인 시 자동으로 실행하고 싶습니다. 이 문제를 어떻게 해결할 수 있나요?
답변1
쉘을 변경하기 만하면됩니다. 해당 사용자로서 다음을 실행하십시오.
$ chsh -s /bin/bash
그런 다음 로그아웃했다가 다시 로그인하세요.
이 작업을 수행했는데 프롬프트가 원하는 대로 표시되지 않으면 환경의 PS1 변수 조정을 시작해야 합니다.
답변2
쉘을 변경해야 합니다. 명령 실행
chsh -s /bin/bash
그런 다음 다시 로그인하십시오.
그러나 모든 사용자가 자신의 셸을 변경할 수 있는 권한을 갖고 있는 것은 아닙니다. 사용하는 경우 sudo
추가하는 것을 잊지 마세요사용자 이름명령 chsh
은
sudo chsh <username> -s /bin/bash
그렇지 않으면 실수로 루트의 쉘이 변경됩니다.
답변3
가능한 이유 중 하나는 기본 쉘입니다내 사용자 이름배쉬가 아닙니다.
다음을 사용하여 현재 사용자의 쉘을 확인할 수 있습니다.
echo ${SHELL}
echo $0
사용자 셸을 영구적으로 변경하려면 man chsh
다음 예를 참조하세요.
chsh -s /bin/bash
답변4
한 가지만 더 추가하고 싶었습니다.
해당 사용자의 bash를 변경하기 위해 sudo 액세스가 필요한 경우 sudo 명령에서 사용자 이름을 언급해야 합니다. 사용자 이름이 없으면 루트 사용자에게 적용되기 때문입니다.
$ sudo chsh -s /bin/bash <user>