我以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")
...
引用this answer,将
proc.stdin.write("username:password")
替换为proc.communicate(b"username:password")
解决了问题相关问题 更多 >
编程相关推荐