【发布时间】:2023-03-07 13:32:01
【问题描述】:
通过在stackoverflow上找到的大量搜索和使用sn-ps,我能够创建以下代码,允许我使用Python GUI启动shell脚本作为sudo并通过GUI输入密码,然后不等待 shell 返回,允许在 shell 脚本运行时更新进度条。
build_script = ["Sudo -S sh dummyfile.sh"]
sudo_password = 'password'
sp = subprocess.Popen(build_script, shell=True, stdin=subprocess.PIPE, universal_newlines=True)
sp.stdin.write(sudo_password+'\n')
sp.stdin.flush()
如果密码第一次输入正确,则该工具运行正常。但是,如果密码输入错误,那么输入正确就会失败,需要关闭GUI再重新打开。
如何验证密码是否被以下人员接受:
sp.stdin.write(sudo_password+'\n')
这样我就可以将错误返回给用户。
我明白我的尝试存在安全风险。我愿意接受可以让我:
- 验证密码是否正确
- 使用用户输入密码以 Sudo 身份启动 sh 文件
- 在 sh 脚本运行时继续运行 python(不要等待)
它需要与 Python 2.7 兼容,但我也在努力让它在未来在 Python 3 中运行。
感谢您的帮助!
【问题讨论】:
标签: python-3.x python-2.7 shell subprocess sudo