SSH 로그인시 bash 또는 자동 실행 / bin / bash를 수정하는 방법


16

root내 서버에서 로그인하면 모든 것이 잘 작동하지만 myusernamebash 로 로그인하면 올바르게 작동하지 않습니다.

라인은 다음과 같이 시작합니다.

$ 

대신에

myusername@myserver:~$

화살표 키, 탭 키 등과 같은 모든 특수 키는 작동하지 않습니다.

입력 bin/bash하면 다시 작동하지만 bin/bash로그인시 문제 또는 자동 실행을 수정하고 싶습니다 . 이 문제를 어떻게 해결할 수 있습니까?

ssh  bash 

답변:


16

쉘만 바꾸면됩니다. 해당 사용자로서 다음을 실행하십시오.

$ chsh -s /bin/bash

그런 다음 로그 아웃했다가 다시 로그인하십시오.

이 작업을 수행 한 후 프롬프트가 원하는 것처럼 보이지 않으면 환경의 PS1 변수 조정을 시작해야합니다.


질문은 root사용자 에 대해 묻기 때문에 실제로는 일종의 위험 합니다. 그는 리눅스를 사용하지 않는 것 같습니다. 벤더는 아마도 ksh자신이 선택했거나 다른 것을 믿고 있기 때문에 루트는 기본 쉘을 유지해야합니다 . 그 대신에 실제 대답은 "어쨌든 루트로 로그인해서는 안됩니다"입니다.
bahamat

12

쉘을 바꿔야합니다. 명령을 실행

chsh -s /bin/bash

그런 다음 다시 로그인하십시오.

그러나 모든 사용자가 자신의 쉘을 변경할 권리가있는 것은 아닙니다. 를 사용 sudo하는 경우 다음 과 같이 명령에 사용자 이름 을 추가하십시오.chsh

sudo chsh <username> -s /bin/bash

그렇지 않으면 루트에 대한 쉘이 실수로 변경됩니다.


페어 포인트. 답변을 약간 확장했습니다.
Mikael Fremling

sudo chsh -s /bin/bash사용자가 쉘을 변경할 권한이 없기 때문에 시도하는 것이 순진했습니다 . 당신의 대답은 그것을 해결하는 데 도움이되었습니다. 감사!
Edenshaw

5

가능한 한 가지 이유는 myusername 의 기본 쉘이 bash가 아니기 때문입니다.

다음을 사용하여 현재 사용자의 쉘을 확인할 수 있습니다.

  • echo ${SHELL}
  • echo $0

사용자 셸을 영구적으로 변경하려면 다음을 참조하십시오 man chsh .

chsh -s /bin/bash

2

sudo 사용자 비밀번호가 사용 불가능한 경우 /etc/passwd직접 편집하고 사용자가있는 행을 찾은 후 쉘 경로를로 변경하십시오 /bin/bash.

다음은 / etc / passwd 형식에 대한 설명입니다. .


0

하나만 더 추가하고 싶었습니다.

해당 사용자의 bash를 변경하기 위해 sudo 액세스가 필요한 경우, username 없이는 root 사용자에게 적용되므로 sudo 명령에서 사용자 이름을 언급해야합니다.

$ sudo chsh -s /bin/bash <user>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.