【问题标题】:Running a linux subprocess in python with sudo使用 sudo 在 python 中运行 linux 子进程
【发布时间】:2013-05-31 03:19:43
【问题描述】:

所以,这有点令人困惑,但本质上我使用的是 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 的用户名和密码?问题是这不能通过提示来完成,所以它只是失败了。

【问题讨论】:

  • 要么修复被调用/调用脚本的正确权限,要么让调用脚本/用户使用sudo without password

标签: python django subprocess popen


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2019-11-13
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2015-12-19
    • 2018-12-15
    相关资源
    最近更新 更多