新的 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 环境时,我认为我应该是这样的问题:
为我正在处理的每个 deamon/acript 创建一个新的 linux 用户帐户,这样 python 虚拟环境和 python 项目代码区可以放在该用户拥有的目录下吗?
也许一开始就新建一个非管理员账户,然后每个project/virtual environmnet
就用这个账户
在我第一次为 raspbian(例如 "pi" 用户)登录的初始管理员用户下创建所有内容 - 假设此选项为否,但为了完整性而将其放入。
TL;DR: 1.否 2.是 3.否
- 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?
没有。为此创建许多用户帐户会带来不必要的复杂性,也没有真正的好处。请注意,一个用户可以登录多个会话并 运行 多个进程。
- 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 您需要升级权限。
- 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 对特权资源的访问控制。
- 妥善隔离账号私有资源
我从 Python 3 开始,使用 Raspbian(来自 Debian),并使用 virtualenv。我了解如何 create/use 一个 virtualenv 到 "sandbox" 不同的 Python 项目,但是我有点不清楚是否应该为每个项目设置不同的 linux 用户(假设 project/virtualenv 将用于在 linux 框上创建 & 然后 运行 守护进程)。
所以当创建单独的 python 环境时,我认为我应该是这样的问题:
为我正在处理的每个 deamon/acript 创建一个新的 linux 用户帐户,这样 python 虚拟环境和 python 项目代码区可以放在该用户拥有的目录下吗?
也许一开始就新建一个非管理员账户,然后每个project/virtual environmnet
就用这个账户
在我第一次为 raspbian(例如 "pi" 用户)登录的初始管理员用户下创建所有内容 - 假设此选项为否,但为了完整性而将其放入。
TL;DR: 1.否 2.是 3.否
- 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?
没有。为此创建许多用户帐户会带来不必要的复杂性,也没有真正的好处。请注意,一个用户可以登录多个会话并 运行 多个进程。
- 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 您需要升级权限。
- 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 对特权资源的访问控制。
- 妥善隔离账号私有资源