【Mac】ログインシェルの変更方法について (chsh, chpass)

スポンサーリンク

大体 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:

ターミナルを起動し直すとシェルが変更されてるのがわかります。

f:id:tasukujp:20150117165059p:plain

Macの場合はシステム環境設定 -> ユーザとグループ -> 左下の鍵をクリック -> ユーザを右クリック「詳細オプション」でもログインシェルを確認できます。

f:id:tasukujp:20150117170547p:plain