大体 bash がデフォルトになっていますが、慣れてくると別のシェルを試してみたくなったり、bash の脆弱性が見つかった時のように変更する必要がある場合に、ログインシェルを変更する方法についてです。
変更できるシェルの一覧を確認する
変更できるシェルは/etc/shells
に記載されています。
$ cat /etc/shells # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh
Homebrew等を使い自分で用意したシェルに変更したい場合はファイルの末尾に追加します。ファイルの所有者は root になってますので sudo でエディタを開きましょう。
$ ls -l /etc/shells -rw-r--r-- 1 root wheel 179 9 10 05:47 /etc/shells # rootのみ編集可能 $ sudo vi /etc/shells # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh /usr/local/bin/bash # 追加するシェル
ログインシェルを変更する
ログインシェルを変更するには次のいずれかのコマンドを実行します。
chshコマンド
ユーザのパスワードが求められるので入力します。
$ chsh -s /bin/tcsh Changing shell for tasukujp. Password for tasukujp:
chpassコマンド
ユーザのパスワードが求められるので入力します。
$ chpass -s /bin/zsh Changing shell for tasukujp. Password for tasukujp:
ターミナルを起動し直すとシェルが変更されてるのがわかります。
Macの場合はシステム環境設定 -> ユーザとグループ -> 左下の鍵をクリック -> ユーザを右クリック「詳細オプション」でもログインシェルを確認できます。