为什么 sudo 在 macOS 终端中不起作用?

Why sudo does not work in a macOS terminal?

我在 mac 谣言中问了这个问题,但由于它非常针对开发人员,所以没有人可以提供帮助,所以想知道这里的开发人员是否知道。在过去几周的某个时候,发生了一些事情,完全破坏了我的 sudo 命令。现在每次我尝试 sudo 任何东西时,它只会出现一个空行。我无法在终端(或 iTerm)中输入任何内容,我需要关闭 window.

我有备份,但不知道哪些文件会被破坏,并且不想只是将我的 Mac 重置到任意时间点并放弃其他工作。我主要只是使用 sudo 来编辑 /private/etc/hosts 文件,不知何故现在它让我在没有 sudo 的情况下编辑和保存它所以我认为它可能会以某种方式卡在 sudo 中但我已经重置了我能想到的一切并且没有改变我知道的任何设置。

我尝试创建一个新的管理员用户并从中进行 sudo,但还是一样。

我已经尝试遵循各种论坛上的建议,但其中 none 有效,而且我已经到了可能对我的 mac 造成更大伤害的地步。任何人都知道如何修复它或我可以从我的备份中拖出任何可能修复它的文件吗?

我试过:

which sudo

并且它出现 /usr/bin/sudo 这似乎是一个有效的文件路径。

将当前的 /etc/sudoers 与旧版本进行比较可能是个好主意,以防万一。

此外,请记住期望的文件权限是:

chmod 0440 /etc/sudoers

遵循此 link - https://macperformanceguide.com/blog/2017/20170328_1326-macOS-10_12_4-sudo-broken.html - 我找到了解决方案和问题所在。 AMPPS 已编辑 sudoers 文件以包含一些 NOPASSWD 行,这显然在 10.12.4 中不起作用。注释掉这些行有效

https://macperformanceguide.com/blog/2017/20170407_1157-macOS-10_12_4-sudo-broken-fix.html

我也面临这个问题将近 3-4 个月,这让我很烦恼。这让我几乎发疯了。昨天我决定坐下来一劳永逸地解决这个问题。

经过大量阅读,我发现 sudoers 文件中的 AMPPS 条目是罪魁祸首。

使用 sudo visudo 命令打开 sudoers 文件或使用一些编辑器(在进行更改之前备份 sudoers 文件并阅读使用指南 "visodo" )

我在 sudoers 文件中评论了 2 行,现在一切正常。

#%amit ALL= NOPASSWD: /Applications/AMPPS/Ampps.app
#%amit ALL= NOPASSWD: /Applications/AMPPS/ampps

类似的 experience/solution 已被此博主分享 here,

您的机器上可能没有安装 AMPPS,所以对我有用的可能对您不起作用。

要强调的是 "There is something in there in your sudoers file which is causing issue, just find that line"