我有一台 Mac,我不小心运行了
sudo chown -R $(whoami) /usr/bin
我刚刚意识到我搞砸了,这与一些愚蠢的 npm 权限有关!(Npm 错误有时会让我抓狂,我正在寻找一个快速解决方案)
我设法通过以下方式开始sudo
工作这个答案到sudo:/usr/bin/sudo 必须由 uid 0 拥有,并且设置了 setuid 位 [OSX]
我该如何恢复/usr/bin
到原始权限?我应该备份并重新安装系统吗?
答案1
/usr/bin 中的几乎所有内容都归 root 所有,并分配给 wheel 组。最简单的方法是将所有内容都设置为该组,然后纠正少数例外情况:
sudo chmod root:wheel /usr/bin/*
sudo chmod _uucp /usr/bin/{cu,uucp,uuname,uustat,uux}
sudo chgrp tty /usr/bin/write
对于 macOS High Sierra (v10.13) 和 Mojave (v10.14) 来说这应该是正确的;我不确定 Sierra (v10.12) 是否如此,但在 El Capitan (v10.11) 中 /usr/bin/wall 也应该分配给 tty 组。
当然,您必须关闭系统完整性保护才能执行此操作;但我认为它已经关闭,否则它会阻止原来的更改。