Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I know I can set "Shells open with" in the Terminal preferences, but I'm curious if there's any system-wide way of setting this (similar to updating /etc/passwd in some Unixes).

share|improve this question

3 Answers 3

up vote 17 down vote accepted

Use the chsh utility like so:

chsh -s bash

Apple has changed chsh a bit on Mac OS X compared to the chsh you'd see in Linux for example. You can read up on theirs in the chsh Mac OS X Man Page.

share|improve this answer
    
And here I figured it was something complicated with some OSX-specific utility, heh. Thanks. –  nall Sep 29 '09 at 0:11
    
@john - nicely learned :) –  akira Sep 29 '09 at 4:42
    
Yeah I knew the answer last time too, I was just beaten to it! :( –  John T Sep 29 '09 at 5:02

Note that you will only be allowed to change to a shell listed in /etc/shells. This is normally fine, but it means that if you want to install Bash 4 (from Homebrew, MacPorts, or compiling your own), you need to add a line to /etc/shells. (I ran into this a few weeks ago, and figured it might help others to know...)

Edit: Tim Smith points out that you can get around the /etc/shells limitation if you run chsh as root via sudo. E.g. sudo chsh -s /usr/local/bin/my_shell $USER will work, even if my_shell is not listed in /etc/shells. I prefer to edit /etc/shells, but in the end, it's one use of sudo either way since you can't edit /etc/shells as a regular user. So perhaps six of one, half dozen of the other.

share|improve this answer

To do this using the Mac OS X GUI:

  1. Open System Preferences
  2. Open the Accounts Preference Pane. Unlock the preference pane if applicable.
  3. On the user you wish to change the shell, control or right click on the user and choose "Advanced Options..."
  4. Where it says Login Shell - change this to the shell you wish to use.

Of note, this location is where you can change your home directory, UUID, User ID, Group ID, and short name if you're uncomfortable with the Terminal. There is an identical question on Server Fault (ID: 21044) as well.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.