/usr/local/bin 应该由 root 拥有吗?

oro*_*aki 7 security package-management mac-osx file-permissions

包管理器Homebrew(我在 OS X 上,但我对基于 Unix 的安全性一般很好奇,因为它与目录权限有关)将所有者设置/usr/local/bin为我的用户(root默认情况下,对吗?),这意味着现在我可以通过简单地将它们移动到/usr/local/binsudo不需要)来安装可执行文件。

  1. 我对此是否正确,通常/usr/local/binroot?
  2. /usr/local/bin与您的普通用户交流是不是一个巨大的安全问题,因为现在我运行的任何软件都可以代表我安装程序而无需我的密码?

cee*_*yoz 6

从他们的常见问题解答中,这是为了避免在安装软件包时必须以 root 身份从 Internet 运行任意代码的危险做法。对于大多数用户来说,这是一个合理的妥协 - Homebrew 通常用于一个人的开发机器,而不是生产多用户服务器。

Homebrew 旨在无需使用 sudo 即可工作。您可以决定使用它,但我们强烈建议不要这样做。如果您使用过 sudo 并遇到错误,那么它很可能是原因。请不要提交错误报告,除非您可以在不使用 sudo 的情况下从头重新安装 Homebrew 后重现它。

您应该只对您信任的工具进行 sudo。当然,您可以信任 Homebrew ;) 但是您信任 Homebrew 运行的多兆字节 Makefile 吗?开发人员对 C++ 的理解通常比对 make 语法的理解要好得多。sudo 这类东西的风险太高了。它可能会破坏你的基本系统,或者巧妙地改变它。

事实上,我们已经看到一些构建脚本试图修改,/usr即使前缀被完全指定为其他东西。

你 chown 根/Applications/TextMate.app吗?可能不是。那么对它那么重要chown root wget吗?

如果您需要在多用户环境中运行 Homebrew,请考虑创建一个单独的用户帐户,特别是为了使用 Homebrew。

对于为什么它不只是在你的安装~,请参阅前面FAQ问题:“为什么家酿喜欢我安装到/usr/local?”。

  • Touché 对他们来说(刚刚检查 - 虽然我不使用 TextMate,但我确实在`/Applications` 中找到了我拥有的几个包),但听起来他们使用错误来提交另一个,对吧?为什么 Homebrew 不能在安装过​​程中询问你的密码,不是为了让安装程序可以以 `root` 身份运行任意代码,而是为了让 Homebrew 可以在事后`chown root:admin` 安装包?Homebrew 可以管理文件和目录的所有权,而不允许包以“root”身份运行代码,对吗? (2认同)