意外更改了 /usr/bin 的权限,如何修复?

意外更改了 /usr/bin 的权限,如何修复?

我有一台 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 组。

当然,您必须关闭系统完整性保护才能执行此操作;但我认为它已经关闭,否则它会阻止原来的更改。

相关内容