在 Mac OS X 上,我們可以在 Users & Groups 設定中指定 Network Account Server 來開啟網路賬戶的登入。但是,當我試圖將網路賬戶的預設 shell 從 bash 修改為 zsh 的時候,出現了問題。
直接執行 chsh 命令,會在預設編輯器中開啟下面的內容:
# Changing user information for rzeng.
# Use "passwd" to change the password.
##
# Open Directory: /Active Directory/XXXX/xxxx.com
##
Shell: /bin/bash
Full Name: Rong Zeng
Office Location:
Office Phone:
Home Phone:
當編輯了 shell: 的值之後,儲存會出現這樣的提示:
chsh: Operation was denied because the current credentials do not have the appropriate privileges. Operation was denied because the current credentials do not have the appropriate privileges.
chsh: no changes made
直接使用 sudo chsh -s /bin/zsh ,也會出現同樣的提示。
根據 How do I change a users default shell in OSX? 提到的,按住 Ctrl 鍵單擊 User & Groups 中顯示的使用者名稱稱,會出現 Advanced Options... 選項,在其中可以設定預設的 shell。
但是,Network Account 沒有 Advanced Options ,而其他使用者都有。
最後,還是這個問答通過曲線救國的方式解決了問題: chsh doesn’t change $SHELL 。
方法很簡單,作業系統不是不讓改嗎?那麼就直接改應用程式!
我使用的是 iTerm.app 代替預設的 Terminal 。進行如下的設定即可讓 iTerm.app 啟動的時候自動啟動 zsh。
點擊 iTerm.app -> Preferences -> Profiles -> General -> Command ;
設定 Command: 的值為 /bin/zsh 。
其實,如果不怕麻煩,在啟動 shell 之後,再敲入 zsh 斷行符號也能達到同樣的效果。