Django - 如何以apache用户以外的用户身份执行进程

时间:2014-09-18 08:55:48

标签: django apache configuration

我有一个django Web服务器,允许用户在我们的服务器上运行作业/任务。从Web应用程序运行作业时,它将作为www-data用户运行。我们希望将作业作为实际登录用户运行。为此,我们显然需要对linux身份验证系统进行身份验证,以便用户可以使用他们的服务器凭据登录,然后我们需要以某种方式使该用户运行的所有任务作为他们在服务器上的用户运行而不是www-data用户。有没有办法做到这一点,可能使用ldap身份验证?

我们在Ubuntu 12.04上使用Django Web框架。 Web服务器由Apache2托管。 Web服务器将在本地网络上运行,无法从我们的大楼外部访问。

1 个答案:

答案 0 :(得分:1)

我知道我的答案可能无法满足您的所有需求并且实施起来不是很快,但我想在您的Django应用程序中您可以发送Linux su - your_user命令(将设置使用Python的subprocess基于当前登录的Django用户的正确Linux用户,然后仍使用subprocess调用需要执行的作业/任务。

子流程:https://docs.python.org/3.4/library/subprocess.html

编辑:您还可以查看Pexpect https://github.com/pexpect/pexpect