Se você quiser alterar seu shell de login, use chsh (shell de alteração). Se você simplesmente quer executar uma instância de ksh que se comporta como um shell de login, então continue lendo.
ksh se comporta como um shell de login se o primeiro caractere do argumento 0 for - ; se você estiver em ksh ( ksh93 ou mksh , não ksh88 nem pdksh), zsh , yash ou bash , então
exec -a -ksh /path/to/ksh [optional arguments]
irá substituir o shell atual por uma instância do shell Korn que se comporta como um shell de login. (Se você estiver em bash ou zsh , então exec -l /path/to/ksh será menor e terá o mesmo efeito.)
Se nenhum desses shells estiver disponível, você também pode tentar perl :
perl -e 'exec {"ksh"} "-ksh"'