python - 使用 sudo python 打开终端

标签 python python-2.7 subprocess

我必须使用 sudo 打开终端来自 python 。考虑我的密码是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做了我想要的。

最佳答案

您可以使用 sudo-S 选项通过 stdin 传递密码。不过,最有可能的是,使用 /etc/sudoers 允许 sudo 无需密码即可访问 ritic-stack-intel 是一个更好的主意。

关于python - 使用 sudo python 打开终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017798/

相关文章:

使用 UTF-8 字符串写入文件时出现 Python 编解码器错误

python - 斯坦福解析器不适用于 python (Windows 7)

python - FFMPEG 和 Pythons 子进程

python - 无法通过我的脚本中的 subprocess.call 正确使用 "psql"命令行

python - 我正在尝试抓取数据,但它只获取 10 页的数据,而有 26 页

python - PyXML 安装 - 此平台上不存在 memmove

python - 织物导入错误 : "fab task" vs. "from fabfile import task; task()"

python - Django - 在 if 语句中使用模板标签

Python 嵌入式数据持久性,简单、可修改且可靠

python - Robocopy 错误代码 6 '' 句柄无效'