如何向CentOS服务器上的其他用户授予对虚拟环境的访问权限

时间:2019-01-29 15:07:27

标签: python ssh centos virtualenv

我使用了本教程(GoDaddy录制,因为我有GoDaddy VPS)

https://www.godaddy.com/garage/how-to-install-and-configure-python-on-a-hosted-server/

安装Python的辅助版本(3.6.6)并创建一个虚拟环境以使用Python的辅助版本运行模块。我希望能够在虚拟环境中运行脚本,但不希望始终使用管理员帐户来执行此操作。我设置了另一个没有管理员权限的帐户。有没有一种方法可以将权限扩展到创建权限以外的其他管理员帐户?我需要在每个有权运行python的用户帐户上创建一个虚拟环境吗?

它表示要在bash_profile脚本中添加一行。该脚本已经有了:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
     . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

这很有意义,因为它似乎正在定义底层Python的位置(即2.6.6)。我在venv中有需要3.4+的模块,所以我创建了虚拟环境。我希望能够从Chrome调用该脚本并为某些脚本运行该脚本,并为其他脚本从cronjob运行该脚本,这些脚本需要始终指向virtualenv才能使用该已安装的解释器。我不知道如何正确执行此操作。这是我的系统信息以及一些SSH打印输出的结果:

$ cd $PATH
-bash: cd: /home/flohosti/.local/bin:/home/flohosti/perl5/bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/cpanel/composer/bin: No such file or directory

在进入VirtualEnv之前,我运行which python并获得了我期望的/ usr / bin / python。

1 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点。

您可以简单地授予对安装虚拟环境的目录的读取访问权限,然后将其路径导出到/etc/profile中,以便将其路径自动添加到每个用户路径。

或者您也可以访问虚拟env文件夹中的python二进制文件。

话虽这么说,这不是正确的解决方法,多数情况下,您希望在projet文件夹中包含虚拟环境,以便该项目可以自动使用,并且有权访问该项目的人

编辑1

所以您的评论的答案

是的,绝对可以在cron中使用相同的虚拟环境来执行脚本,但是您必须给虚拟环境和cron中的脚本提供绝对路径,例如/home/flohosti/projectOne/env/bin/python <script path>,也可以只设置{ {1}},然后您也可以使用相对路径。