Vom Benutzer installierte Shell verwenden?

Vom Benutzer installierte Shell verwenden?

Wie ändere ich meine Shell zu einer, die in meinem Home-Verzeichnis installiert ist? Ich habe eine neue zsh in meinem Home-Verzeichnis installiert, die übernommen wird:

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

Es ist nicht in /etc/shells aufgeführt (und wird es auch nicht sein, da mir die Berechtigung fehlt). Wie installiere ich es also?

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

Antwort1

Der Sinn von /etc/shellsbesteht darin, dass der Administrator kontrollieren kann, was Benutzer als ihre Shell festlegen. Das Festlegen einer Shell, die nicht in aufgeführt ist, /etc/shellswäre daher eine Sicherheitslücke. Die beste Lösung besteht darin, den Administrator zu bitten, zsh systemweit zu installieren. Wenn dies jedoch nicht möglich ist, besteht Ihre einzige Option darin, Ihre aktuelle Shell (ich gehe davon aus, Bash) so zu konfigurieren, dass Ihre benutzerdefinierte Shell ausgeführt wird. Sie können dies tun, indem Sie Folgendes hinzufügen ~/.bash_profile(dies betrifft nur Login-Shells, während es ~/.bashrcauch Nicht-Login-Shells betrifft, die Skripte beschädigen können).

exec ~/bin/zsh

verwandte Informationen