
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/shells
besteht darin, dass der Administrator kontrollieren kann, was Benutzer als ihre Shell festlegen. Das Festlegen einer Shell, die nicht in aufgeführt ist, /etc/shells
wä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 ~/.bashrc
auch Nicht-Login-Shells betrifft, die Skripte beschädigen können).
exec ~/bin/zsh