Quando você executa exec /bin/ash -f /root/aliases.sh
ash
é executado de forma não interativa e sai assim que "/root/aliases.sh" for executado; é por isso que a sessão do SSH termina.
Portanto, a solução é executar o shell de forma interativa; de man 1 ash
:
Portanto, basta definir ENV
em "~ / .profile":
export ENV=/root/aliases.sh
e execute o shell de forma interativa:
exec /bin/ash
No entanto, observe que:
- A execução de
exec /bin/ash
no final de "~ / .profile" substituirá qualquer origem de shell "~ / .profile" (ou seja, qualquer shell de login) com umash
instance; - Isso não faz sentido. A maneira correta de obter
ash
como um shell de login para um usuário é alterar o shell de login do usuário, o que pode ser feito usandochsh
.
Então eu realmente sugiro que você remova exec /bin/ash
de "~ / .profile" e altere o shell de login para o usuário usando chsh
.