Eu tenho um problema semelhante em um sistema que uso (o shell padrão é bash
, quero ksh93
e chsh
não funciona).
Minha solução, adaptada para sua situação, é exec
do shell desejado de ~/.profile
, que Dash lê na inicialização. O Bash não toca em ~/.profile
a menos que não encontre ~/.bash_profile
ou ~/.bash_login
(nessa ordem, veja o manual do Bash).
# in ~/.profile:
if [ "$SHELL" != "/usr/bin/bash" -a -n "$SSH_TTY" -a -x /usr/bin/bash ]; then
export SHELL="/usr/bin/bash"
exec $SHELL -l
fi
O SSH define SSH_TTY
em sessões SSH interativas, portanto, estamos verificando se está definido (string não vazia) antes de garantir que o Bash esteja disponível e executando-o. Estou definindo e exportando SHELL
no caso de qualquer outro aplicativo olhar para ele e para evitar que o Bash seja executado em um loop infinito devido à falta de ~/.bash_profile
e ~/.bash_login
e, assim, tentar executar ~/.profile
novamente.