Řešení 1:
Ptal jsem se na to v kanálu #suse na Freenode a Miuku navrhl totéž co Arul, nicméně zmínil dvě věci, pokud bych používal doménu Windows, mohl bych nastavit atribut loginShell.
Bohužel jsem na doméně samby, takže to nepomohlo. Ale jeho poslední návrh byl dokonalý, získejte výstup:
getent passwd USERNAME
Toto bude mít platný ekvivalent záznamu pro vašeho uživatele v /etc/passwd, vezměte to, vložte jej do /etc/passwd a aktualizujte shell na konci pro platnou cestu shellu, který chcete použít. Tímto způsobem to nezmění pro všechny uživatele a před provedením změny se můžete ujistit, že shell je na počítači, na kterém to konfigurujete.
Řešení 2:
Měl jsem úplně stejný problém. Protože ne všechny počítače v mé doméně mají nainstalovaný zsh, a protože jsem nechtěl ovlivnit všechny uživatele, nakonec jsem vložil svůj .bashrc:
if [ -x /usr/bin/zsh ]; then
echo 'starting zsh'
# export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
exec /usr/bin/zsh
fi
To může být nevkusné, ale alespoň to odvede svou práci.
Řešení 3:
Pokud máte přístup k úpravě konfigurace řadiče domény samba, můžete nastavit následující vlastnost, která vám umožní nastavit prostředí v smb.conf
template shell = /bin/zsh
Nejste si jisti, co se stane, když se přihlásíte k počítači, který nemá nainstalovaný zsh (ne všechny distribuce mají standardně nainstalováno zsh), ale odhaduji, že to vyvolá výchozí shell distribuce.
Pokud si to chcete jednoduše vyzkoušet, stačí napsat zsh a získáte subshell, o kterém jsem si jistý, že to už víte.