Se você não pode executar chshporque não possui privilégios de administrador, fale com alguém que o faça .
Provavelmente você não pode usar chshcomo não raiz porque o sistema que você está usando está configurado para que chshnão funcione, por exemplo, porque o sistema usa NIS ou LDAP em vez de apenas o /etc/passwdarquivo. Ou talvez o administrador do seu sistema só queira manter algum controle.
O procedimento para alterar seu shell depende das políticas da sua organização. Pode haver um comando local que faça o que chshnormalmente faz. Ou você pode precisar enviar um tíquete de suporte solicitando uma alteração de shell.
A maioria das outras respostas é boa, mas se os administradores forem razoavelmente responsivos, talvez você não queira se incomodar em invadir seus scripts de inicialização. Eu provavelmente apenas invocaria zsh -lmanualmente depois de fazer login até que o administrador atualize minha conta.
Outra coisa a ter em mente: às vezes, shell diferentes podem usar os mesmos arquivos de inicialização. Por exemplo, she bashtanto pode executar $HOME/.profile, e cshe tcshtanto pode executar $HOME/.logine $HOME/.cshrc(embora os arquivos de inicialização específico do shell como .bashrc, .bash_profilee .tcshrcpode substituir aqueles). Se o seu shell padrão é /bin/cshe você deseja usar /bin/tcsh, a atualização de sua .loginchamada /bin/tcsh -lpode criar um loop infinito. zshnão executa basharquivos de inicialização específicos, portanto, isso não é um problema para você.
A maioria das conchas definir variáveis que identificam quais a Shell você está executando ( $BASH_VERSION, $tcsh, $ZSH_VERSION). Se você estiver escrevendo um código de inicialização para chamar seu shell preferido, não é uma má idéia incluí-lo em um, ifpara que ele seja executado apenas se você ainda não estiver executando esse shell. Usando o código da resposta do konsolebox :
if [ "${ZSH_VERSION:-unset}" = "unset" ] ; then
export SHELL=/bin/zsh
exec /bin/zsh -l
fi
(A complicação adicional de verificar, em "${ZSH_VERSION:-unset}"vez de apenas "$ZSH_VERSION"permitir a possibilidade que você fez set -o unset, uma opção que faz com que uma referência a uma variável indefinida seja um erro.)
zshno.bashrcarquivo. Logout e login e pronto!