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

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

我正在按照一个教程,其中有这个命令在 /etc/ 中创建一个 launchd.conf 文件

sudo echo "some command" > /etc/launchd.conf

但它不起作用,我输入管理员密码后权限被拒绝。似乎链接的权限是错误的,所以我这样做了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

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

lrwxr-xr-x   1 root           wheel          11 Jul 21  2011 etc -> private/etc

/私人/等…

drw-r--r-- 111 root           wheel    3774 Mar 26 02:25 etc

编辑:我正在使用 Mac OS X 10.7.3

答案1

Kyle Jones 的答案肯定有效,但是您是否尝试过从磁盘实用程序运行权限修复?这可能会奏效....

答案2

重新启动 Mac,command-s在第一次听到启动提示音时按住。继续按住直到屏幕上开始显示文本。系统将使用 root shell 启动到单用户模式。

mount -uw /
chmod a+x private/etc

将使 /etc 再次可访问。输入exitshell,Mac 将完成启动。

答案3

/etc和的权限和所有权/private/etc对我来说似乎都是正确的;顺便说一句,您忘了检查/private,它也可能有错误的权限。

我遇到了完全相同的问题,在我的例子中,根文件夹本身的权限被破坏了。人们忽略的是,这/实际上也是一个真实的、正常的目录,就像每个目录一样,它有所有权和权限。所有权应该是root:wheel,权限应该是755(就是这样rwxr-xr-x)。

恢复两者的最简单方法是启动Script Editor然后输入并运行该脚本:

do shell script "/usr/sbin/chown root:wheel /" with administrator privileges
do shell script "/bin/chmod 755 /" with administrator privileges

系统会提示您输入 amdin 密码,然后chown进行chmod救援。之后sudo又可以正常工作了。

相关内容