包管理器自制(我在 OS X 上,但我对基于 Unix 的安全性很好奇,因为它涉及目录权限)将所有者设置/usr/local/bin
为我的用户(这是root
默认的,对吗?),这意味着现在我可以通过简单地将它们移动到/usr/local/bin
(sudo
不需要)来安装可执行文件。
- 我说得对吗?这通常
/usr/local/bin
是由拥有的root
? /usr/local/bin
与普通用户一起chowning 难道不是一个巨大的安全问题吗,因为现在我运行的任何软件都可以以我的名义安装程序,而不需要我的密码?
答案1
从他们的常问问题,这是为了避免在安装软件包时必须以 root 身份从互联网运行任意代码的危险做法。对于大多数用户来说,这是一个合理的折衷方案 - Homebrew 通常用于单人开发机器,而不是生产多用户服务器。
Homebrew 的设计使其无需使用 sudo 即可运行。您可以决定使用它,但我们强烈建议不要这样做。如果您使用 sudo 并遇到错误,那么它很可能就是原因。除非您可以在不使用 sudo 的情况下从头开始重新安装 Homebrew 后重现该错误,否则请不要提交错误报告。
你应该只使用你信任的工具。当然,你可以信任 Homebrew ;) 但你信任 Homebrew 运行的数兆字节 Makefile 吗?开发人员对 C++ 的理解往往远比对 make 语法的理解要好。使用 sudo 这类东西的风险太高了。它可能会破坏你的基础系统,或者巧妙地改变它。
事实上,我们已经看到一些构建脚本
/usr
即使前缀被指定为完全不同的东西也会尝试进行修改。你 chown root 了吗
/Applications/TextMate.app
?可能没有。那么这真的那么重要吗chown root wget
?如果您需要在多用户环境中运行 Homebrew,请考虑创建一个专门用于 Homebrew 的单独用户帐户。
为什么它不只是安装在你的~
,看到早期常见问题“为什么 Homebrew 更喜欢我安装到/usr/local
?”。