1

所以,这有点令人困惑,但本质上我使用的是 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 中运行它时它可以工作,但是当它被网络上的随机用户调用时它不起作用。有什么方法可以自动输入该 sudo 的用户名和密码?问题是这不能通过提示来完成,所以它只是失败了。

4

1 回答 1

2

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

于 2013-05-31T05:35:54.603 回答