sudo:/usr/bin/sudo 必须由 uid 0 拥有,并且设置了 setuid 位

sudo:/usr/bin/sudo 必须由 uid 0 拥有,并且设置了 setuid 位

因此,我和我的新手开发人员在 teamviewer 中尝试安装一些 node js 包,npm install。他遇到了一些库的问题,他更改了我的 mac sudo 的权限。

我在网上搜索的所有解决方案大多与 ubuntu 有关,他们建议这样做 1. 注销当前用户身份,然后重新以 root 身份登录。 2. 执行 chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo 3. 注销 root 身份,然后重新以当前用户身份登录。

这在 Mac 上根本不起作用。除了重新安装还有其他解决方案吗?

答案1

您是否禁用了系统完整性保护? 如果启用,它应该可以阻止您弄乱 /usr/bin/sudo(并且还可以阻止修复它,除非重新安装)。我强烈建议保持 SIP 处于打开状态;我想不出您需要绕过它来进行 node.js 设置的任何好理由(以及大量不好的理由)。您需要将其关闭才能修复 /usr/bin/sudo(并撤消您所做的任何其他通常被禁止的更改),但我建议您在修复该问题后将其重新打开。

您应该能够使用 /Applications/Utilities/Script\ Editor.app 修复 sudo。创建一个新的“文档”(脚本),然后输入以下内容:

do shell script "chown root:wheel /usr/bin/sudo; chmod 4511 /usr/bin/sudo" with administrator privileges

...然后点击工具栏上的运行。它会提示您输入管理员密码,并且(如果一切顺利)会将所有权和权限恢复正常。

相关内容