Mac OS X - 无法启动 Terminal.app - shell 具有非法值

che*_*emm 16 shell permissions terminal.app system-restore

从 Time Machine 回滚系统后,我无法运行 Terminal.app。

Mac OS X 版本 10.6.2

它显示以下错误。“您无权运行此应用程序”“管理员已将您的外壳设置为非法值”

之后我删除了文件 ~/Library/Preferences/com.apple.Terminal.plist

但显示相同的消息。

我已经使用 DiskUtility 修复了所有系统权限,但这并没有帮助。

che*_*emm 10

此值设置为/bin/bash。这里没有什么可以改变的。我已经控制了这些偏好。我对每个 shell 都收到此错误。

最后我找到了解决方案。在 Finder 中,我去打开文件夹/etc。在那里我找到了文件/private/etc/shells,它是空的。我用/private/etc/shells备份文件替换了该文件/private/etc/shells~orig

现在 /private/etc/shells 包含以下内容:

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
Run Code Online (Sandbox Code Playgroud)

(在Finder中需要更多步骤,删除空shell文件,在信息对话框中更改权限。)

现在我可以/bin/bash再次启动 Terminal.app 。


小智 10

重新启动是 OS X Lion 中的答案。如果您无法写入 USB 或网络驱动器,解决方案是相同的。

我希望有一些快速的更新来摆脱这些烦人的问题。


小智 5

我在 Time Machine 恢复后遇到了同样的问题,在这种情况下,使用 MacBook Pro 的备份恢复到 MacBook。

我仅使用 Finder 就可以解决问题(每次请求时都输入您的密码):

  • 使用 Go > Go to Folder 转到“/private”
  • 选择“等”
  • Command-I 调出信息弹出窗口(在此过程结束之前不要再次关闭它)
  • 单击右下角的锁定符号以解锁权限
  • 记下“所有人”的权限设置
  • 单击“所有人”的权限设置,然后选择“读取和写入”
  • 使用 Go > Go to Folder 转到“/private/etc”
  • 我发现“shells”是空的,但是有一个“shells~orig”,里面有一个很好的shell列表
  • 删除“壳”
  • 选择“shells~orig”
  • Command-C、Command-V 复制粘贴;这会创建“shells~orig copy”
  • 选择“shells~orig copy
  • 再次点击进入重命名模式,将“shells~orig copy”的名称改为“shells”
  • 返回信息弹出窗口并将“所有人”的权限设置更改回其原始值
  • 关闭信息弹出窗口

现在我有一个包含有效 shell 列表的“shells”文件,我可以再次打开终端。


Tim*_*Tim 4

在“系统偏好设置”的“帐户”窗格中右键单击您的帐户名称,然后选择“高级选项”。更改“Login shell”的值 - 我使用 /bin/bash,但您可以随意使用任何已安装的 shell。