我在 Linux 和 OS X 上使用 Python,我正在想一个很好的理由不将我的 Python 站点包目录 chmod 到 777。这似乎比每次我想要做最轻微的时候都执行 sudo 更好修改。还是我疯了?请注意,这主要用于我的开发机器,而不是任何类型的生产服务器。
免责声明:是的,我知道注意事项。pip install
包管理器提供的easy_install
东西是不好的。在大多数情况下,使用 virtualenv 比修改全局 Python 安装更好。
我在 Linux 和 OS X 上使用 Python,我正在想一个很好的理由不将我的 Python 站点包目录 chmod 到 777。这似乎比每次我想要做最轻微的时候都执行 sudo 更好修改。还是我疯了?请注意,这主要用于我的开发机器,而不是任何类型的生产服务器。
免责声明:是的,我知道注意事项。pip install
包管理器提供的easy_install
东西是不好的。在大多数情况下,使用 virtualenv 比修改全局 Python 安装更好。
如果那是您的机器,那么您也可以做任何适合您的事情。我留下这样的权限的主要原因是这意味着我不太可能意外破坏某些东西。
这实际上取决于您要承担的责任级别,如果这是您自己的盒子,并且您很高兴自己不会运行恶意软件并且不会意外丢弃任何东西,那么没有正当的理由不这样做。
我唯一担心的另一个问题是,如果我正在开发一个包并想在现实生活条件下测试它以及它的部署,我将无法做到,因为一切都是可写的。
我知道一些安全专家会不同意,但最终安全应该与可用性平衡。在一次谈话中,我在一位安全人员中坚持认为操作系统应该被更改为根本不允许用户做某些事情。幸运的是,当时有人大声说“对不起,戴夫,我不能让你那样做”......
这不是一个好主意。777 意味着任何用户都可以编写模块,例如,受感染的 webapp 脚本控制的 web 服务器用户。如果该用户可以将 py 或 pyc 写入站点包,然后由另一个用户(例如 root)导入,那么您的低权限危害将升级为严重的机器级危害。如果您非常确定您的机器可以免受所有攻击,这是可以接受的,那很好......但如果是这种情况,那么您还不如真正以 root 身份运行一切!
更好:如果您想要只有您的用户可以访问并且无需更新即可更新
sudo
的模块,请添加用户特定的模块路径。您可以使用PYTHONPATH
或修改来做到这一点sys.path
,但从 Python 2.6 开始,这不是必需的,因为您默认获得一个~/.local/lib/python2.6/site-packages
. 有关详细信息,请参阅PEP 370。