Usar shell instalado pelo usuário?

Usar shell instalado pelo usuário?

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/shellsseria, 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 ~/.bashrctambém afetará os shells que não são de login, que podem quebrar os scripts).

exec ~/bin/zsh

informação relacionada