更改用户默认 shell 的正确 OSX 方法是什么?我在 Google 上搜索时,发现有几处提到了一个名为 NetInfo Manager 的应用程序,但我在系统上找不到它。还有提到一个名为 niutil 的命令行版本,但我也没有找到。
答案1
对于 <=10.4 - netinfo 管理器,/users/whoever/shell
对于 >=10.5
- 转到系统偏好设置 -> 用户和群组
- 单击锁定图标以解锁偏好设置窗格
- 右键单击(或按住 Control 键单击)用户并选择“高级选项”
- 编辑登录 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:
不过:shell
UserShell
sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh