我正在按照一个教程,其中有这个命令在 /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 再次可访问。输入exit
shell,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
又可以正常工作了。