我以root用户身份运行以下脚本:
import subprocess
proc = subprocess.Popen(['chpasswd'], stdin=subprocess.PIPE)
proc.stdin.write("username:password")
print("Password updated")
虽然该脚本是以root用户身份运行的,但它仍按预期工作。
但是,当我尝试在flask
下运行它时,它输出"Password updated"
,但它实际上并没有更新密码。可能的原因是什么,以及如何使其工作?
...
@app.route('/')
def some_path():
if condition:
proc = subprocess.Popen(['chpasswd'], stdin=subprocess.PIPE)
proc.stdin.write("username:password")
print("Password updated")
...
发布于 2020-09-06 14:36:27
参考this answer,用proc.communicate(b"username:password")
替换proc.stdin.write("username:password")
解决了这个问题。
https://stackoverflow.com/questions/63764630
复制