软件包pipe理器Homebrew (我在OS X上,但是我很好奇基于Unix的安全性,因为它涉及目录权限)将/usr/local/bin的所有者设置为我的用户(默认情况下是root用户,对吧?),这意味着现在我可以通过简单地将它们移动到/usr/local/bin (不需要sudo )来安装可执行文件。
/usr/local/bin是由root拥有的? /usr/local/bin是一个巨大的安全问题,因为现在我运行的任何软件都可以代替我的密码安装程序。 从他们的FAQ中 ,这是为了避免在安装软件包时不得不以root身份运行任意代码的危险做法。 对于大多数用户来说,这是一个合理的妥协 – 自制软件一般用在单人开发机器上,而不是生产多用户服务器。
Homebrew被devise为不使用sudo而工作。 您可以决定使用它,但我们强烈build议不要这样做。 如果你使用sudo并遇到bug,那很可能是原因。 请不要提交错误报告,除非您可以在不使用sudo的情况下从头开始重新安装Homebrew之后重新生成它。
你只能sudo一个你信任的工具。 当然,你可以相信自制软件;)但是,你相信自制软件运行的数兆字节的Makefile吗? 开发人员通常比理解make语法更好地理解C ++。 sudo这样的东西的风险太高了。 它可能会破坏你的基础系统,或者微妙地改变它。
事实上,我们已经看到一些构build脚本试图修改
/usr即使前缀被指定为完全别的东西。你有没有根
/Applications/TextMate.app? 可能不会。 那么对于chown root wget来说这很重要吗?如果您需要在多用户环境中运行Homebrew,请考虑创build一个单独的用户帐户,尤其是使用Homebrew。
为什么它不只是安装在你的~ ,请参阅以前的FAQ问题 “为什么自制软件更喜欢我安装到/usr/local ?”。