如何修复 Mac OS X 上的 /etc/ 文件夹

jus*_*nhj 7 mac chmod macos

我正在关注一个教程,它有这个命令在 /etc/ 中创建一个 launchd.conf 文件

sudo echo "some command" > /etc/launchd.conf
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我在输入管理员密码后被拒绝。链接的权限似乎是错误的,所以我做了sudo chmod 755 /etc/ 但是现在我无法加载终端,我收到错误The administrator has set your shell to an illegal value

如果我sudo现在尝试命令,我会得到

sudo: can't open /private/etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
Process *tramp/sudo root@localhost* exited abnormally with code 1
Run Code Online (Sandbox Code Playgroud)

这是 /etc 链接的样子,它应该是什么样子,我该如何恢复它?

lrwxr-xr-x   1 root           wheel          11 Jul 21  2011 etc -> private/etc
Run Code Online (Sandbox Code Playgroud)

/私人/等...

drw-r--r-- 111 root           wheel    3774 Mar 26 02:25 etc
Run Code Online (Sandbox Code Playgroud)

编辑:我使用的是 Mac OS X 10.7.3

Kyl*_*nes 10

重新启动您的 Mac,command-s在您第一次听到启动铃声时按住。一直按住它,直到您开始在屏幕上看到文字。系统将使用 root shell 引导到单用户模式。

mount -uw /
chmod a+x private/etc
Run Code Online (Sandbox Code Playgroud)

将使 /etc 再次可访问。exit在 shell 中键入,Mac 将完成启动。

  • 根分区在单用户模式下以只读方式挂载。您必须重新挂载它以进行写访问(`mount -uw /`),以便 chmod 命令工作。 (2认同)

NRe*_*ngh 6

凯尔琼斯的回答肯定会奏效,但是您是否尝试过从磁盘工具运行权限修复?这可能会奏效......

  • 我还发现(至少在 10.7 中)您可以通过在终端中运行以下命令来确定文件或文件夹是否将通过修复磁盘权限修复:`pkgutil --file-info /etc`,将 `/etc` 替换为您要检查的任何位置。当然,当您无法加载终端时,这没有多大帮助。 (4认同)
  • @WilliamJackson 据我所知,它会根据已安装的软件包(可能来自 .pkg 收据)检查文件系统的权限。由于 /etc/ 是与核心操作系统一起安装的文件,我不明白为什么它不起作用。 (2认同)