【问题标题】:How can I run brew as root?如何以 root 身份运行 brew?
【发布时间】:2019-05-04 00:20:16
【问题描述】:

我知道这是一个常见问题,但我真的很苦恼。

我最近尝试在我的 Mac OS El-Capitan 上使用 Homebrew 安装 MySQL。但是,我遇到了一些问题,我想重新安装它。然而,每当我尝试这样做时,它都会给我:

Error: Permission denied @ rb_sysopen - /usr/local/var/homebrew/locks/mysql.formula.lock

我试图通过简单地在 root 帐户中手动整理命名文件来绕过此错误,但是文件太多了。

所以我尝试用root卸载它,但它给了我这个错误:

Error: Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.

我看了很多文章,包括这个link!他们中的许多人建议我将 /usr/local 文件夹直接 chown 到我自己的 root 用户帐户,这样我就可以运行 brew 而没有任何权限问题,但这太危险了。

我试着跑了:

sudo chown root /usr/local/bin/brew

但这并没有奏效。

有什么方法可以绕过这个错误,并以 root 身份运行 brew?

【问题讨论】:

  • 首先运行brew doctor 并遵循它的建议。
  • 我运行了“brew doctor”,但只有需要解决的问题的警告。我仍然无法以 root 身份运行 brew 或绕过权限错误。
  • “我需要解决的问题的警告”——嗯,是的,完全正确。你解决了吗?
  • 解决 MySQL 权限错误的方法是不要以 root 身份运行 Homebrew,警告告诉你这是一个坏主意。您应该修复所有 brew doctor 警告,如果还不够,请确保您拥有 /usr/local 及其下的所有内容 (e.g. like this)。

标签: mysql macos shell homebrew root


【解决方案1】:

他们中的许多人建议我将 /usr/local 文件夹直接添加到我自己的 root 用户帐户中,这样我就可以运行 brew 而不会出现任何权限问题,但这太危险了。 p>

chowning all of /usr/local/ 可能是个坏主意,因为它并不完全在 Homebrew 的控制之下。但只是/usr/local/var/homebrew/locks/mysql.formula.lock 应该没问题。

chown $USER /usr/local/var/homebrew/locks/mysql.formula.lock

并听从brew doctor的建议。


尝试运行:sudo chown root /usr/local/bin/brew 但这也不起作用。

所有这一切都是使文件/usr/local/bin/brew 归根用户所有。它不会使其以root身份运行。您应该将其改回由您的用户拥有,否则您将无法升级 brew。

要使其以 root 身份运行,您可以使用 setuid不要这样做。它本质上是危险的,而且就您目前对权限的理解而言更是如此。没有什么私人的,权限需要一段时间才能习惯和欣赏。


Homebrew 不会以 root 身份运行以限制恶意软件包或简单错误可能造成的损害。通过以您的用户身份运行,它只会损坏您的用户可以访问的内容。这会隔离系统文件等重要内容。这就是 Unix 权限系统的目的:限制可能造成的损害。如果您以 root 身份运行 brew,则所有赌注都将关闭。

此外,如果/usr/local/var/homebrew/locks/mysql.formula.lock 由 root 拥有,则意味着 MySQL 以 root 身份运行。如果您以 root 身份运行 MySQL 并且它受到威胁,那么您的整个系统就会受到威胁。如果您以您的用户或特殊受限的 mysql 用户身份运行 MySQL,则只有您的用户文件或 mysql 自己的文件可能会受到损害。按照自制程序的规定运行它。

学习使用尽可能少的权限运行是非常值得的。

【讨论】:

    【解决方案2】:

    出于安全原因,以 root 身份使用 brew 是个坏主意。相反,您可以将 brew 文件所有权更改为当前登录的用户。输入这个命令:

    sudo chown $USER /usr/local/bin/brew
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2013-12-19
      相关资源
      最近更新 更多