¿Usar shell instalado por el usuario?

¿Usar shell instalado por el usuario?

¿Cómo cambio mi shell a uno instalado en mi directorio de inicio? Instalé un nuevo zsh en mi directorio de inicio, que se recoge:

>> which zsh
>> /home/myname/bin/zsh

No aparece en /etc/shells (y no lo estará, ya que no tengo permiso), entonces, ¿cómo lo instalo?

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

Respuesta1

El objetivo /etc/shellses que el administrador pueda controlar lo que los usuarios configuran como su shell. Por lo tanto , configurar un shell que no figura en la lista /etc/shellssería un agujero de seguridad. La mejor solución es pedirle al administrador que instale zsh en todo el sistema, pero si eso no es posible, su única opción es configurar su shell actual (supongo que bash) para ejecutar su shell personalizado. Puede hacer esto agregando lo siguiente a ~/.bash_profile(esto solo afectará a los shells de inicio de sesión, mientras que ~/.bashrctambién afectará a los shells sin inicio de sesión que pueden romper los scripts).

exec ~/bin/zsh

información relacionada