ユーザーのデフォルトシェルを変更する正しいOSXの方法は何ですか?探してみたところ、NetInfo Managerというアプリケーションへの参照がいくつか見つかりましたが、自分のシステムでは見つかりませんでした。 niutilというコマンドラインバージョンへの参照もありましたが、どちらも見つかりませんでした。
<= 10.4の場合-netinfo manager、/ users/whoever/Shell
> = 10.5
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ファイルを手動で編集する必要はありません。
10.10の場合:
Shell
ではなくUserShell
:
Sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh