Convencionalmente, um shell age como um shell de login se ele é chamado com um nome de comando que começa com -
. exec -sh
funcionaria se você tivesse um executável chamado -sh
no caminho. BusyBox ash também suporta a opção -l
, então você pode executar sh -l
.
Quando você efetua login, o programa login
(ou sshd
, ou o que estiver manipulando o login) cuida da execução do shell do usuário com um -
no nome do comando (o nome do comando não tem que ser o mesmo que o nome do executável, é apenas uma convenção muito comum que login
viola de propósito). Aqui, "o que quer que esteja lidando com o login" é o seu mini-script, então você precisa cuidar disso.