Como corrigir bash ou execução automática / bin / bash no logon SSH

16

Ao fazer login como rootno meu servidor, tudo funciona bem, mas quando faço o login como myusernameo bash não está funcionando corretamente.

A linha começa com:

$ 

ao invés de

myusername@myserver:~$

e todas as teclas especiais, como as teclas de seta, tabulação etc. não funcionarão.

Quando digito, bin/bashele funciona novamente, mas eu gostaria de corrigir o problema ou executar automaticamente bin/bashno login. Como posso consertar isso?


fonte

Respostas:

16

Você só precisa mudar seu shell. Como esse usuário, execute:

$ chsh -s /bin/bash

Depois saia e entre novamente.

Depois de fazer isso, o prompt não parecerá o desejado, você precisará começar a ajustar a variável PS1 do seu ambiente.

EEAA
fonte
Na verdade, isso é meio perigoso, pois a pergunta está sendo feita sobre o rootusuário. Ele provavelmente não está usando Linux. A raiz deve permanecer com o shell padrão, já que o fornecedor provavelmente contará com isso kshou o que mais ele escolher. Em vez disso, a resposta real é "você não deve fazer login como root de qualquer maneira".
bahamat
12

Você precisa mudar seu shell. Execute o comando

chsh -s /bin/bash

depois entre novamente.

No entanto, nem todos os usuários têm o direito de alterar seu próprio shell. Se você usar sudolembre-se de adicionar seu nome de usuário ao chshcomando como

sudo chsh <username> -s /bin/bash

caso contrário, você alterará o shell para root inadvertidamente.

Mikael Fremling
fonte
Ponto justo. Estendeu a resposta um pouco.
Mikael Fremling
Fui muito ingênuo em tentar: sudo chsh -s /bin/bashjá que meu usuário não tinha permissão para alterar o shell. Sua resposta me ajudou a resolvê-lo. Obrigado!
Edenshaw
5

Uma razão possível é que o shell padrão do myusername não é bash.

Você pode verificar o shell do seu usuário atual com:

  • echo ${SHELL}
  • echo $0

Para alterar o shell do usuário permanentemente man chsh , consulte , por exemplo:

chsh -s /bin/bash
H.-Dirk Schmitt
fonte
2

Se sua senha de usuário sudo estiver desabilitada, você poderá editar /etc/passwddiretamente, localizar a linha onde está seu usuário e alterar o caminho do shell /bin/bash.

Aqui está a explicação do formato / etc / passwd .

foman
fonte
0

Só queria adicionar mais uma coisa.

Se o acesso ao sudo for necessário para alterar o bash para esse usuário, você precisará mencionar seu nome de usuário também no comando sudo, pois sem o nome de usuário, ele será aplicado ao usuário root.

$ sudo chsh -s /bin/bash <user>
Prateek
fonte