在 Mac OS X 的网络账户中修改 shell(chsh)
在 Mac OS X 上,我们可以在 Users & Groups
设置中指定 Network Account Server
来开启网络账户的登录。但是,当我试图将网络账户的默认 shell 从 bash 修改为 zsh 的时候,出现了问题。
直接执行 chsh
命令,会在默认编辑器中打开下面的内容:
1# Changing user information for rzeng.
2# Use "passwd" to change the password.
3##
4# Open Directory: /Active Directory/XXXX/xxxx.com
5##
6Shell: /bin/bash
7Full Name: Rong Zeng
8Office Location:
9Office Phone:
10Home 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
回车也能达到同样的效果。
(全文完)
- 文章ID:2292
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/chsh-in-network-account-on-osx/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。