用sudo python打开终端

时间:2015-12-01 10:14:51

标签: python python-2.7 subprocess

我必须使用python中的sudo打开一个终端。我的密码是pass,我需要在sudo critical-stack-intel pull脚本中运行命令。

我有一小段代码:

import subprocess
import shlex

command = "sudo critical-stack-intel pull"
popen = subprocess.Popen(shlex.split(command),stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
popen.communicate("pass")
popen.wait()
# print help(p)

如果我将文件作为python myfile.py运行,它会要求我在终端内输入密码。这不是我想要的。我希望python处理我给出的密码并正常运行。我该如何完成这项工作?

修改

使用popen.communicate(pass + "\n")sudo -S按照我的意愿行事。

1 个答案:

答案 0 :(得分:2)

您可以使用-S的{​​{1}}选项通过stdin传递密码。但最有可能的是,使用sudo允许sudo访问critical-stack-intel而不使用密码更好。