我犯了一个致命错误,没有仔细检查就将 sudo 命令复制并粘贴到我的终端中,就是这样。
sudo -R mysql /
对于那些不知道的人来说,这个功能的作用是递归地将每个文件的所有者从根目录更改为 mysql!!显然不是我想要的
这当然对我的系统造成了严重破坏,我做的第一件事是修复苹果权限,但这只对它知道的文件有效,尽管它已经将许多文件所有权改回了根。似乎许多库文件的所有权仍然不正确,因为许多问题都不起作用。我建议在重新安装 Mountain Lion 之前做一个临时修复,即递归地将所有属于 mysql 的所有权设置为 Luke。我不确定他们应该怎么做,但这总比没有好。使用 shell 脚本可以做到这一点吗?
我意识到这并不能正确解决问题,我必须重新格式化,但我需要机器在本周处于可工作状态。
答案1
如果是 OSX,则只需重新安装操作系统。它不会破坏您的数据,只会使系统文件更接近默认值。
然后尝试进入恢复驱动器(如果有),从菜单中打开终端,输入
resetpassword
然后会弹出一个窗口。窗口底部有一个重置用户 ACL 的选项。
这应该可以修复你的主目录。
或者,您可以只使用 Onyx,那里也有一个重置 ACL 的选项。
答案2
通过隐藏功能修复 Lion、ML 等权限
在 Lion、ML、Mavericks... 中,使用磁盘工具修复权限(通常的做法)并不能修复用户文件权限。
按照以下步骤使用隐藏功能可以修复权限,效果更好、更彻底,并且通常可以修复奇怪的问题:
- 重新启动,听到提示音后立即按住 Command+R 以在恢复模式下访问“OS X 修复分区”实用程序。
- 现在在“修复实用程序”屏幕上,单击菜单栏中的“实用程序”项。[[如果使用磁盘加密,请退出 Mac OSX 实用程序;在“启动磁盘”提示符下使用密码解锁。然后运行终端应用程序。]]
- 向下滚动找到终端应用程序并双击它以启动它。
- 当终端窗口打开时,小心地在此窗口中输入resetpassword,然后按回车键。
- “密码重置实用程序”窗口启动,(但重置密码不是重点,因此不会这样做)。
- 单击左上角的 Mac 硬盘图标,然后在下拉菜单中选择遇到问题的用户帐户。
然后在“密码重置实用程序”窗口底部找到“重置主目录权限和 ACL”按钮 —> 单击它。
几分钟后,重置过程完成,然后退出每个打开的程序。然后单击“重新启动”。这解决了与用户、主文件夹项目等相关的许多问题。
通过使用原始的 OS X 安装 DVD,此“重置主目录权限和 ACL”技术适用于以前的 OS X 版本。
答案3
这些听起来像是有效的选项。但您的第一个假设将是最好的方法。OS X 中的修复权限功能将获取大多数系统文件;但如果问题是您无法以自己的身份运行,并且您只更改了用户而不是组,那么运行“sudo chown -R luke /”然后再次修复权限将使您恢复到大多数可用状态,直到(或如果)您重新安装。
至于修复用户目录中的权限;您只改变了所有权......所以“sudo chmod -R luke /Users/luke”将比任何工具更快地解决这个问题(可能需要将 Luke 大写,具体取决于您在计算机上的用户名。)