“sudo pip install”仍然是一种破碎的做法吗?

Modified on: Sat, 09 Jun 2018 04:21:53 +0800

我是Ubuntu的新手,所以请耐心等待我。我使用以下命令安装pipsudo apt-get -y install python-pip。然后我在他们的网站上使用命令安装了NLTK,其中包括:sudo pip install -U nltk。但后来我偶然发现这个问题,说我所做的一切都是“破碎的做法”。让我印象最深的是使用sudo pip本身就是错误的,并且给予pip过多的力量可能会损坏操作系统文件。有人可以验证这个说法吗?

注意 - 我只使用sudo,因为当我尝试命令apt-get -y install python-pip时,它给了我2个错误:

E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

最佳答案

sudo pip install及其他常见变体sudo -H pip install应该鼓励,因为它存在安全风险root权限使用pip从PyPI(Python Package Index)安装Python包。

来自https://stackoverflow.com/a/21056000/486919(强调我的):

  

使用pip运行sudo时,使用setup.py运行sudo。在
  换句话说,您以root身份从Internet运行任意Python代码。
  如果有人在PyPI上设置恶意项目并安装它,那么
  授予攻击者root权限以访问您的计算机。在最近的某些操作之前
  修复了pip和PyPI,攻击者还可以运行一个人
  下载一个值得信赖的中间攻击来注入他们的代码
  项目

https://security.stackexchange.com/a/79327/8761所述,它是值得注意的是,任何人都可以将Python软件包(包括恶意软件包)上传到PyPI。

简而言之,根据最低权限原则,请勿使用sudo使用pip从PyPI安装Python包,除非你绝对需要。相反,请考虑使用pip install --user(注意pip install没有sudo,也没有其他标志/选项默认为pip install --user或虚拟环境(例如virtualenv)。如果您看到人们推荐sudo pipsudo -H pip,请告诉他们不要。


相关问答

添加新评论