シェルをホームディレクトリにインストールされているものに変更するにはどうすればよいですか?私は自分のホームディレクトリに新しいzshをインストールしました。
>> which zsh
>> /home/myname/bin/zsh
/ etc/shellsにリストされていません(許可がないため、リストされません)。どうすればインストールできますか?
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
/etc/shells
の要点は、管理者がユーザーがシェルとして設定するものを制御できるようにすることです。したがって、/etc/shells
にリストされていないシェルを設定すると、セキュリティホールになります。最善の解決策は、管理者にzshシステム全体をインストールするように依頼することですが、それが不可能な場合は、カスタムシェルを実行するように現在のシェル(bashを想定)を構成するしかありません。これを行うには、以下を~/.bash_profile
に追加します(これはログインシェルにのみ影響しますが、~/.bashrc
はスクリプトを壊す可能性のある非ログインシェルにも影響します)。
exec ~/bin/zsh