Skip to content Skip to main navigation Skip to footer

shell: 在 Mac OS X 的网络账户中修改 shell(chsh)

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用 文章源码进行转载;
  • 本文标题:在 Mac OS X 的网络账户中修改 shell(chsh)
  • 本文链接: http://zengrong.net/post/2292.htm

在 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。

  1. 点击 iTerm.app -> Preferences -> Profiles -> General -> Command
  2. 设置 Command:的值为 /bin/zsh

其实,如果不怕麻烦,在启动 shell 之后,再敲入 zsh回车也能达到同样的效果。

(全文完)

原文:http://zengrong.net/post/2292.htm

0 Comments

There are no comments yet

Leave a comment

Your email address will not be published.