从时间机器回滚系统后,我无法运行 Terminal.app。
Mac OS X 版本 10.6.2
它显示以下错误。“您无权运行此应用程序”,“管理员已将您的 shell 设置为非法值”
之后我删除了文件 ~/Library/Preferences/com.apple.Terminal.plist
但显示的是相同的消息。
我已经使用 DiskUtility 修复了所有系统权限,但这没有帮助。
答案1
在 OS X Lion 中,答案是重新启动。如果您无法写入 USB 或网络驱动器,解决方案也是一样的。
我希望能够快速更新以解决一些令人烦恼的问题。
答案2
此值设置为/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
(Finder 中需要更多步骤,删除空 shell 文件,在信息对话框中更改权限。)
现在我可以再次启动 Terminal.app /bin/bash
。
答案3
我在 Time Machine 恢复后遇到了同样的问题,在这种情况下,使用 MacBook Pro 的备份恢复到 MacBook。
我仅使用 Finder 即可解决问题(每次请求时输入密码):
- 使用“前往”>“前往文件夹”前往“/private”
- 选择“等”
- Command-I 调出信息弹出窗口(在此过程结束前不要再次关闭它)
- 点击右下角的锁符号解锁权限
- 记下“所有人”的权限设置
- 点击“所有人”的权限设置,并选择“读写”
- 使用“前往”>“前往文件夹”前往“/private/etc”
- 我发现“shells”是空的,但是有一个“shells~orig”,里面有一个很好的 shell 列表
- 删除“shell”
- 选择“shells~orig”
- Command-C、Command-V 复制并粘贴;这将创建“shells~orig copy”
- 选择“shells~orig copy
- 再次点击进入重命名模式,将“shells~orig copy”的名称更改为“shells”
- 返回信息弹出窗口并将“所有人”的权限设置改回其原始值
- 关闭信息弹出窗口
现在我有一个包含有效 shell 列表的“shells”文件,我可以再次打开终端了。
答案4
我也遇到了同样的问题;重启一下就好了。在 Mac 上不习惯这么做 :-P