如何在 OSX 中更改用户默认 shell?

如何在 OSX 中更改用户默认 shell?

更改用户默认 shell 的正确 OSX 方法是什么?我在 Google 上搜索时,发现有几处提到了一个名为 NetInfo Manager 的应用程序,但我在系统上找不到它。还有提到一个名为 niutil 的命令行版本,但我也没有找到。

答案1

对于 <=10.4 - netinfo 管理器,/users/whoever/shell

对于 >=10.5

  1. 转到系统偏好设置 -> 用户和群组
  2. 单击锁定图标以解锁偏好设置窗格
  3. 右键单击(或按住 Control 键单击)用户并选择“高级选项”
  4. 编辑登录 shell 字段

答案2

sudo chsh -s /path/to/shell username

其中 shell 是您想要为该用户指定的 shell。如果您知道的密码,sudo则不需要。username

man chsh

查看更多示例。

答案3

NetInfo 已被目录服务 (dscl) 取代,值得注意的是,自 10.3 以来,Mac OS X 的默认 shell 已变为 bash。在此之前,默认 shell 为 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

如果你不确定当前的 shell,你可以运行:

sudo dscl localhost -read /Local/Default/Users/USERNAME shell

如果用户不是本地用户,路径将会改变,如有必要,您可以将其更改localhost为 Open Directory Server 的名称。(假设它运行 10.5)。

信息存储在 .plists (xml) 中/private/var/db/dslocal/- 但是您不想手动编辑 plist 文件。

答案4

对于 10.10:

不过:shellUserShell

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh

相关内容