理解自制“no-sudo”哲学并质疑常见问题

理解自制“no-sudo”哲学并质疑常见问题

在全新安装 OS X 后,我决定以正确的方式安装 Python 包管理器。因此我开始谷歌搜索,发现 homebrew 是最好的方式。现在我有两个问题:

  • 来自自制常见问题解答:

Homebrew 的设计目的在于无需使用 sudo 即可运行。

但是安装脚本要求输入密码。这是因为实际用户被授予作为管理员组成员读取、写入、执行 usr/local... 目录的权限。因此,homebrew 不会每次都询问 sudo,而是只询问一次。然而,由于您必须使用 sudo yes 或 yes,因此规则被打破了。

我害怕在安装软件包时使用 sudo 和 python。这就是我决定使用 homebrew 的原因。但实际上不是一样吗?

如果这是真的,我认为让自制程序做它们想做的事情是不安全的,因为它们有 root 权限。

  • 来自自制常见问题解答:

/usr/local/bin 已经在您的 PATH 中。

那我为什么需要

将 Homebrew 目录插入到 PATH 顶部

正如http://docs.python-guide.org/en/latest/starting/install/osx/

homebrew 安装脚本执行的命令:

/usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig

/usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig

答案1

他们说要把它放在/usr/local/bin/你的顶部,$PATH这样自制程序就会在系统程序之前被找到。例如,如果你使用自制版本的python,系统程序将在unless之前/usr/bin/python被调用/usr/local/bin/python/usr/local/bin /usr/bin在你的$PATH,即使/usr/local/bin已经在你的$PATH

答案2

哇哦,谁说安装的程序有 root 权限?sudo用于授予写入受保护目录的权限,以便您可以将内容安装到系统文件夹中。您安装的程序不会神奇地继承根权限。它们像所有程序一样以它们应该具有的任何权限进行安装。使用安装sudo不会提升已安装文件的权限。

至于$PATH,如果 homebrew 已经安装到/usr/local/bin并且已经在您的中,$PATH那么您根本不需要执行任何事情。

相关内容