使用sudo在python中运行linux子进程

时间:2013-05-31 03:19:44

标签: python django subprocess popen

所以,这有点令人困惑,但实质上我正在使用Django,我想实例化一个子进程来运行perl脚本。我已经读过这可以用

来完成
arg = "/some/file/path/"
pipe = subprocess.Popen(["./uireplace", arg], stdin=subprocess.PIPE)

当我在views.py中的相应函数中调用它时,该脚本需要sudo。然后我称之为

pipe = subprocess.Popen(["sudo","./uireplace", arg], stdin=subprocess.PIPE)

当我从终端在python中运行它时工作,但是当它被Web上的随机用户调用时,它不起作用。有没有办法能够自动输入该sudo的用户名和密码?问题是,这不能通过提示完成,因此它只是失败了。

1 个答案:

答案 0 :(得分:2)

在操作系统级别解决此问题。向网络上的任何用户授予使用sudo的权利听起来不对。只需使./uireplace可执行。 chmod有很多选项可以对此进行微调。