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

时间:2016-09-07 04:53:46

标签: terminal root sudo chown

我的Mac(El Capitan)上有usr / bin / sudo问题。

当我遇到从NPM安装的权限问题并按照他们的指示开始时: https://docs.npmjs.com/getting-started/fixing-npm-permissions

我发现这是我在这里做的一件非常愚蠢的事情:
/usr/bin/sudo must be owned by uid 0 and have the setuid bit set version .ubantu14.04 LTS

我打开我的终端并获得:

  

malloc: *对象0x7fff38418900的错误:未分配的指针被释放* 在malloc_error_break中设置断点以进行调试[进程被信号6终止]

这基本上会杀死我的终端,从而杀死我的工作。

I Command-S重启时以单用户模式启动。我跑

fsck -fy

我的硬盘似乎没问题。然后我得到: http://osxdaily.com/2015/11/04/verify-repair-permissions-mac-os-x/告诉我修复权限,因为我有El Capitan,因此不能使用磁盘工具。我跑:

sudo /usr/linexec/repair_packages --verify -standard-pkgs /

终端吐了回来:

sudo: effective uid is not 0, is sudo installed setuid root?

我深入挖掘: https://apple.stackexchange.com/questions/194854/sudo-effective-uid-is-not-0-is-sudo-installed-setuid-root/194856

$ type sudo
sudo is hashed (/usr/bin/sudo) 

$ ls -@@eil /usr/bin/sudo
-r-s--x--x 1 501 wheel 168448 Dec 2 2015 /usr/bin/sudo

$ md5 /usr/bin/sudo
MD5 (/usr/bin/sudo) = 7d986f7707c0f11264554cd4354ef80d

然后我

$ /usr/bin/sudo mv /usr/local/bin/sudo /usr/local/bin/sudo-strange
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

我在这里找到一个真正令人沮丧的答案:https://askubuntu.com/questions/452860/usr-bin-sudo-must-be-owned-by-uid-0-and-have-the-setuid-bit-set。但我是一个乐观主义者所以我忽略了第一个答案并做了第二个答案告诉我的事情:

$ chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
chown: root: illegal group name

告诉root不存在。但是当我

$ whoami
root

所以我走到了尽头,我真的不想花两天时间重新安装一切。

有什么建议吗?

5 个答案:

答案 0 :(得分:0)

问题是您可能更改了directoty / usr / bin的权限。解决这个问题:

Fisrt确保root是此目录/ usr / bin的所有者:

Chown root:root /usr/bin

并更改此目录/ usr / bin / sudo的权限:

chmod u+s /usr/bin/sudo

答案 1 :(得分:0)

由于权限问题

 $ su
 Password: <type your root password>

切换到root用户并运行命令

# pkexec chmod a=rx,u+ws /usr/bin/sudo

然后通过用户输入进行检查

$sudo -l

对我来说很好。

答案 2 :(得分:0)

当我们弄乱sudo文件的权限时会发生这种情况

启用root用户:https://www.hostmyapple.com/blog/how-to-enable-the-root-account-in-macos

切换到root用户:

$ su
Password: <type the root password set while enabling root user>

更改权限:

chmod root:root /usr/local/bin/sudo

(如果您还记得更改权限的文件,请使用该文件代替usr / local / bin / sudo)

这应该解决它。 如果仍然不能解决问题,请尝试从root用户删除/ usr / local / bin / sudo。

答案 3 :(得分:0)

使用 public async Task<IActionResult> OnPostLogOrder(Order order) { if (order != null) { await orderRepo.AddOrder(order); } return RedirectToPage("Shop"); } 执行命令

/usr/bin/sudo

答案 4 :(得分:-2)

我遇到了与macOS sierra相同的问题。 在尝试了其他一些事情并且每次都失败之后,我注意到我的操作系统有一个挂起的更新,安装了更新,一切都恢复正常。