如何以root身份运行brew?

时间:2018-12-02 14:46:40

标签: mysql macos shell homebrew root

我知道这是一个经常被问到的问题,但是我真的很努力。

我最近尝试在Mac OS El-Capitan上使用Homebrew安装MySQL。但是,我遇到了一些问题,我想重新安装它。但是只要我尝试这样做,它就会给我:

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

我试图通过简单地在根帐户中手动对命名文件进行排序来绕过此错误,但是文件太多了。

所以我尝试用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!他们中的许多人建议我使用root用户将/ usr / local文件夹直接授予我自己的用户帐户,这样我可以在没有任何权限问题的情况下运行brew,但这太危险了。

我试图跑步:

sudo chown root /usr/local/bin/brew

但这不能很好地工作。

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

2 个答案:

答案 0 :(得分:1)

  

他们中的许多人建议我使用root直接将/ usr / local文件夹锁定到我自己的用户帐户,这样我可以在没有任何权限问题的情况下运行brew,但这太危险了。

chown合并所有/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拥有。它不会使它作为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自己的文件。按照自制程序禁止运行它。

学习以尽可能少的权限运行非常有价值。

答案 1 :(得分:0)

由于安全原因,以brew为根是一个坏主意。相反,您可以将brew文件的所有权更改为当前登录的用户。键入以下单个命令:

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