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


33

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


回答:


52

<= 10.4の場合-netinfoマネージャー、/ users / whoever / shell

> = 10.5の場合

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

5
わあ、OS XIを8年間使用した後、ユーザー設定のコントロールクリックについては知りませんでした。これは、指摘したとおり、10.5で追加されたと思います。+1
jkp

1
Controlキーを押しながらクリックするのは驚くべきことです!
エオニル

1
アカウントのシェルをPATHから移動した後のLifesaver ...コマンドラインで修正するためにターミナルを起動できませんでした!
-davemyron

2
エルキャピタンではもう機能しませんか?
-MarcusJ

確かに、これはこの種の問題であり、7年後、物事は変化しました-自分で調査し、追加して答えると、それが支持されるでしょう。
チョッパー

33
sudo chsh -s /path/to/shell username

shellは、そのユーザーに必要なシェルです。のパスワードsudoを知っている場合は必要ありませんusername

man chsh

他の例については。


suのrootに対しても機能します。suはコントロールパネルには表示されません。おもう?
クリスFキャロル

4
単に実行しchshて、シェルフィールドを変更することもできます。のようなエラーが表示された場合はchsh: /usr/local/bin/bash: non-standard shell、に追加/usr/local/bin/bashしてください/etc/shells
リリー

3
10.9で何かが変更されたかもしれませんが、このコマンドは使用法メッセージをスローするようになりました。正しい構文は現在chsh -s /path/to/shell username
14年

9

NetInfoはディレクトリサービス(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サーバーの名前に変更します。(10.5を実行すると仮定します)。

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


7

10.10の場合:

ではshellなくUserShell

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.