应该用新的linux用户帐户创建新的python virtualenv吗?

时间:2018-03-12 04:33:56

标签: python linux python-3.x virtualenv virtualenvwrapper

我从Python 3开始,使用Raspbian(来自Debian),并使用virtualenv。我知道如何创建/使用virtualenv到#34;沙盒"不同的Python项目,但我还不清楚是否应该为每个项目设置一个不同的linux用户(假设项目/ virtualenv将用于创建&然后在linux框上运行一个守护进程) 。

因此,在创建单独的python环境时,我认为应该是这样的问题:

  1. 为我正在处理的每个deamon / acript创建一个新的linux用户帐户,这样python虚拟环境和python项目代码区都可以在这个用户拥有的目录下生存吗?

  2. 或许只是在开头创建一个新的非管理员帐户,然后只为每个项目/虚拟环境使用此帐户

  3. 在我首先使用raspbian登录的初始管理员用户下创建所有内容(例如" pi"用户) - 对此选项假设为“否”,但为了完整性而将其置于其中。

    < / LI>

3 个答案:

答案 0 :(得分:4)

TL; DR:1。否2.是3.否

  
      
  1. 为我正在处理的每个deamon /脚本创建一个新的linux用户帐户,这样python虚拟环境和python项目代码区域都可以存在于该用户拥有的目录下?
  2.   

没有。为此创建许多用户帐户不必要的复杂性并没有真正的好处。请注意,一个用户可以登录多个会话并运行多个进程。

  
      
  1. 或许只是在开头创建一个新的非管理员帐户,然后只为每个项目/虚拟环境使用此帐户
  2.   

是的,如果/当您需要升级权限时,请使用非管理员帐户中的sudo

  
      
  1. 在我首先使用raspbian登录的初始管理员用户下创建所有内容(例如&#34; pi&#34;用户) - 对此选项假设为“否”,但为了完整性而将其置于其中。
  2.   

没有。最好创建一个普通用户,而不是以root用户身份运行。但是,使用非root管理员帐户就可以了。

答案 1 :(得分:2)

这取决于你想要实现的目标。从virtualenv的角度来看,你可以做任何这些。

如果您有多个可公开访问且希望隔离它们的服务,那么#p>#1对我来说很有意义。

如果你在内部网络上运行受信任的代码,但又不想让依赖项发生冲突,那么#2听起来很合理。

鉴于Pi经常用于特定目的(不是通用桌面说),并且默认帐户很大程度上未使用,使用该帐户就可以了。确保更改默认密码。

答案 2 :(得分:1)

在一般情况下,无需为virtualenv创建单独的帐户。

可以是创建单独帐户的理由,但它们与虚拟环境不同,并且在某种程度上是对虚拟环境的诅咒。 (如果你有一个专门的服务帐户,没有必要真的把它放在virtualenv中 - 你可能想要,如果它有你希望能够轻松升级等的依赖,但是该帐户已提供类似于virtualenv在帐户中提供的隔离级别。)

使用虚拟环境的原因:

  • 在同一帐户下轻松运行具有不同要求的内容。
  • 无需任何权限即可轻松安装。

使用单独帐户的原因:

  • 对特权资源的细粒度访问控制。
  • 正确隔离帐户的私人资源。