如何在 OSX High Sierra 上修复 /etc/sudoers

use*_*342 1 ownership sudoers macos

我是怎么到这里的

备份数据后,我安装了 SSD 驱动器。我安装了 OSX Maverick(因为我的笔记本电脑大约是 2014 年),然后我开始将我的数据从 user-2 复制到 user-1(因为安装操作系统后我的用户与保存备份数据中的数据)。

然后我开始修复文件的所有权,但我做了一些非常糟糕的事情:我跑sudo chmod -R user-1:staff进去/etc改变了/etc/sudoers. 并且文件所有权已损坏,您无法将其改回。

我试过的

我已经完成了单用户模式启动,发现文件系统以只读方式挂载。

我以恢复模式启动,发现 OSX不再在 Disk Utility 中提供“修复磁盘权限”

我已经在恢复模式下启动,发现我无法从我的 Time Machine 备份中恢复单个文件,因为恢复模式只允许在你的机器上铺满所有 Time Machine 数据。

我试过做一个普通的启动,但这需要 30 分钟,虽然进度条说它已经完成,但操作系统再也没有出现。

问题

那么,我该如何

  1. 在可写文件系统上获得用户提示,以便我可以在/etc/sudoers
  2. 前往Finder 修复所有权

也许能够再次启动我的笔记本电脑?

遗憾的是,我无法以 root 身份使用此漏洞,因为我无法获得登录对话框提示。


稍后 2018-01-21

我遇到了这个问题并且能够mount -uw / && chmod 0 /etc/sudoers成功,但我仍然无法启动。可能是其他原因引起的chown -R

稍后:当我以详细模式 (Command-V) 启动时,我收到无限滚动的错误消息“进程 X 崩溃:opendirectoryd。正在创建太多尸体。” 这看起来是致命的。我可能需要重新安装操作系统和我的备份。

小智 7

有一条出路(感谢https://astrails.com/blog/2009/09/29/how-to-fix-a-hosed-etc-sudoers-file-on-mac-osx):

  • 从具有管理员权限的帐户登录
  • 在终端中,运行open etc/以从 Finder 中查看该目录
  • 选择文件 sudoers
  • 获取它的信息 ( Cmd+ I)
  • 单击+添加权限
  • 授予您的帐户读写权限
  • vi /etc/sudoers 并解决你的烂摊子
  • :w! 保存(因为它仍然是“只读”)
  • 然后运行sudo visudo以恢复对该文件的正确权限。