I've tried to switch my default shell to zsh, using chsh:

chsh -s /bin/zsh


chsh -s `which zsh` 

Both commands ended with:

Changing shell for adamatan.
Password for adamatan:
chsh: Operation is not supported by the directory node.  Operation is not supported by the directory node.
chsh: no changes made

How can I change my default shell in OSX Lion?

  • See stackoverflow.com/questions/14694530/…
    – lhf
    Commented Apr 9, 2013 at 11:12
  • Can you edit your post to confirm (or deny) you are (or are not) a network user on a directory?
    – jnovack
    Commented Apr 9, 2013 at 14:45
  • I tried with Sierra (10.12) and this works.
    – Ɱark Ƭ
    Commented Mar 13, 2017 at 21:35

4 Answers 4


macOS Catalina and later (10.15+)

Apple replaced bash with zsh as the default shell for new user accounts. See article.

You can verify the default shell by typing echo $0 in the terminal.

macOS Mojave and earlier (10.14-)

See Apple Support page, Use zsh as the default shell on your Mac

Surprisingly this doesn't work with the command line tools as one would expect. This needs to be done with the System Preferences app.

The following steps work with multiple versions of Mac OS X through at least 10.11 (El Capitan).

  1. Open up the "User's & Groups" panel in the "System Preferences" app.
  2. Make sure the panel is unlocked (bottom left)
  3. Control click on your username (top left) and select "Advanced Options..." This is only available if you are an Administrator.

enter image description here 4. Change the "Login shell" value to /bin/zsh.

enter image description here 5. Press the OK button to save your change.

You should be careful not to change any other fields, as per the warning at the top of this dialog. If you have any doubts, then press the "Cancel" button and try again.


If you're joined to an Open Directory sever, or any other directory server, the default shell will have to be specified there.

In particular, if you're joined to a Microsoft Active Directory, you can use the Directory Utility to change the default shell, as described here.

You can always just add zsh to your bash profile so it gets called on logon as a workaround.


Just use command chsh -u username to edit your profile


In addition to the other answers, you may need to go to Terminal -> Preferences -> General and change "Shell opens with" to "Default login shell".

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .