【问题标题】:Why sudo does not work in a macOS terminal?为什么 sudo 在 macOS 终端中不起作用?
【发布时间】:2017-09-18 03:34:18
【问题描述】:

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

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

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

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

我试过了:

which sudo

它提供了/usr/bin/sudo,这似乎是一个有效的文件路径。

【问题讨论】:

  • 你试过here提供的答案吗?
  • 我尽可能多地尝试了 - 我无法执行 strace 的 mac 等效项,因为它需要 sudo 来运行它。我只能认为我正在运行的应用程序更改了破坏它的设置,它实际上只能是 codekit 或 ampps。我已经在这些中寻找设置重置,但找不到任何修复它。
  • 看来我不是唯一一个。对于 10.12.4 上的某些人来说,这似乎是一个非常有限的问题。我认为更新是在它崩溃的时候macperformanceguide.com/blog/2017/…

标签: macos unix terminal sudo


【解决方案1】:

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

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

chmod 0440 /etc/sudoers

【讨论】:

  • 谢谢,该文件的权限是正确的,我已经将它与我备份时最旧的 sudoers 文件进行了比较,它们是相同的。我不知道文件中是否有错误但没有任何改变。
  • 好的,sudoers 应该很好。顺便说一句,您是否尝试过在/usr/bin/sudo 二进制文件和旧版本之间运行一个简单的cmp?以防万一……
  • 我刚刚尝试过,但它不允许我 - 需要 sudo 权限 - 我试图用旧版本覆盖该二进制文件,但它甚至不允许我删除它甚至更改对它的权限。我想我可能只需要等待下一次操作系统更新,并希望它能解决任何可能出现的问题。
【解决方案2】:

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

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

【讨论】:

  • 事实证明我最初的建议确实是正确的:你有一个坏掉的/etc/sudoers :-)
  • 是的,这就是大多数在线 cmets 所说的 - 我只是看不到它,因为它只是在最新的 Mac 更新后损坏。谢谢。
【解决方案3】:

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

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

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

我在我的 sudoers 文件中注释了 2 行,现在一切正常。

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

此博主here分享了类似的经验/解决方案,

你的机器上可能没有 AMPPS,所以对我有用的东西可能对你不起作用。

要突出显示的是“您的 sudoers 文件中存在导致问题的内容,只需找到该行”

【讨论】:

    猜你喜欢
    • 2018-09-07
    • 1970-01-01
    • 2021-09-09
    • 2021-12-18
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多