web-dev-qa-db-ja.com

OSXでユーザーのデフォルトシェルを変更するにはどうすればよいですか?

ユーザーのデフォルトシェルを変更する正しいOSXの方法は何ですか?探してみたところ、NetInfo Managerというアプリケーションへの参照がいくつか見つかりましたが、自分のシステムでは見つかりませんでした。 niutilというコマンドラインバージョンへの参照もありましたが、どちらも見つかりませんでした。

33
David Holm

<= 10.4の場合-netinfo manager、/ users/whoever/Shell

> = 10.5

  1. システム環境設定->アカウントに移動します
  2. ロックアイコンをクリックして、設定ペインのロックを解除します
  3. ユーザーを右クリック(またはコントロールクリック)して、「詳細オプション」を選択します
  4. ログインシェルフィールドを編集する
52
Chopper3

NetInfoはDirectory Services(dscl)に置き換えられており、10.3からbashになって以来、Mac OS Xのデフォルトのシェルであることがわかります。それ以前はtcshでした。

コマンドラインからこれを行う必要がある場合(たとえば、ARD経由で、またはSSH経由でリモートでプッシュする場合)、次のコマンドを実行できます。

Sudo dscl localhost -change /Local/Default/Users/USERNAME Shell OLD_Shell NEW_Shell
#In Use:
Sudo dscl localhost -change /Local/Default/Users/chealion Shell /bin/bash /bin/zsh

現在のシェルがわからない場合は、次のコマンドを実行できます。

Sudo dscl localhost -read /Local/Default/Users/USERNAME Shell

ユーザーがローカルユーザーでない場合、パスは単純に変更され、必要に応じてlocalhostをOpen Directory Serverの名前に変更します。 (10.5を実行すると仮定)。

情報は/private/var/db/dslocal/の.plists(xml)に保存されます-ただし、plistファイルを手動で編集する必要はありません。

9
Chealion

10.10の場合:

ShellではなくUserShell

Sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
7
willem