
Como altero meu shell para um instalado em meu diretório inicial? Instalei um novo zsh em meu diretório inicial, que foi escolhido:
>> which zsh
>> /home/myname/bin/zsh
Ele não está listado em /etc/shells (e não estará, pois não tenho permissão), então como faço para instalá-lo?
chsh -s $(which zsh) myname
Changing shell for myname
Password:
chsh: "/home/myname/bin/zsh" is not listed in /etc/shells
chsh: use -l option to see list
Responder1
O objetivo /etc/shells
é que o administrador possa controlar o que os usuários definem como shell. Definir um shell que não esteja listado /etc/shells
seria, portanto, uma falha de segurança. A melhor solução é pedir ao administrador para instalar o zsh em todo o sistema, mas se isso não for possível, sua única opção é configurar seu shell atual (presumo o bash) para executar seu shell personalizado. Você pode fazer isso adicionando o seguinte a ~/.bash_profile
(isso afetará apenas os shells de login, mas ~/.bashrc
também afetará os shells que não são de login, que podem quebrar os scripts).
exec ~/bin/zsh