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

should new python virtualenv's be created with new linux user accounts?

我从 Python 3 开始,使用 Raspbian(来自 Debian),并使用 virtualenv。我了解如何 create/use 一个 virtualenv 到 "sandbox" 不同的 Python 项目,但是我有点不清楚是否应该为每个项目设置不同的 linux 用户(假设 project/virtualenv 将用于在 linux 框上创建 & 然后 运行 守护进程)。

所以当创建单独的 python 环境时,我认为我应该是这样的问题:

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

  2. 也许一开始就新建一个非管理员账户,然后每个project/virtual environmnet

  3. 就用这个账户
  4. 在我第一次为 raspbian(例如 "pi" 用户)登录的初始管理员用户下创建所有内容 - 假设此选项为否,但为了完整性而将其放入。

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

  1. creating a new linux user account for each deamon/script I'm working on, so that both the python virtual environment, and the python project code area can live under directories owned by this user?

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

  1. perhaps just create one new non-administrator account at the beginning, and then just use this account for each project/virtual environment

是的,从 non-admin 帐户使用 sudo if/when 您需要升级权限。

  1. create everything under the initial admin user I first log with for raspbian (e.g. "pi" user) - Assume NO for this option, but putting it in for completeness.

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

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

如果您有多项可公开访问的服务并希望将它们隔离开来,#1 对我来说很有意义。

如果您是内部网络上的 运行 可信代码,但不希望依赖项发生冲突,那么 #2 听起来很合理。

鉴于 Pi 通常用于特定目的(而不是一般用途的桌面)并且默认帐户大部分未使用,使用该帐户就可以了。确保更改默认密码。

一般情况下,没有必要只为虚拟环境创建一个单独的帐户。

可以 成为创建单独帐户的理由,但它们与虚拟环境截然不同,并且在某种程度上是对虚拟环境的厌恶。 (如果你有一个服务的专用帐户,就没有必要真正把它放在 virtualenv 中——你 可能 如果它有你希望能够轻松升级的依赖项等,但该帐户已经提供了类似于 virtualenv 在 帐户内提供的隔离级别。)

使用虚拟环境的原因:

  • 让运行在同一个账户下有不同要求的事情变得容易。
  • 无需任何权限即可轻松为自己安装东西。

使用单独帐户的原因:

  • Fine-grained 对特权资源的访问控制。
  • 妥善隔离账号私有资源