本代码仅仅是作为一个示例代码,并不能拿去直接用于生产环境非常的危险。请务必在生产环境中注意安全性,并确保适当保护和访问控制措施。
import pexpect
from flask import Flask, request
import subprocess
app = Flask(__name__)
@app.route('/change_password', methods=['POST'])
def change():
data = request.json
username = data['username']
password = data['password']
try:
change_password(username, password)
return {'message': '密码修改成功'}
except subprocess.CalledProcessError as e:
return {'message': f'密码修改失败:{e}'}, 500
def change_password(username, new_password):
child = pexpect.spawn(f"passwd {username}")
child.sendline(new_password)
child.sendline(new_password)
child.expect(pexpect.EOF)
child.close()
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000)
整体使用的python3
和flask
搭配,通过HTTP
方式提供外部接口,通过外部接口调用来实现修改Linux操作系统的用户密码。
通过访问http://运行脚本的主机IP:5000/change_password
以POST
形式提交参数username
和password
来指定某个用户的新密码进行重新设置密码。
代码中change()
函数用于接收和响应前端传来的参数,并将拿到的参数传递给change_password()
函数。所以真正修改密码的地方在change_password()
函数中。大家都知道,在Linux中使用passwd
命令修改某个用户密码时,是需要输入两遍新密码
的,这就产生了命令行交互
的问题。对于这个问题在pexpect
模块中找到了解决方案。
pexpect
是一个用于自动化和控制外部进程的库。它主要用于与命令行程序或其他类似交互式应用程序进行通信,并模拟用户输入和读取输出。
欢迎大家关注我的公众号,将会为大家推荐更优质的内容!
原文始发于微信公众号(青檬小栈):使用python脚本修改Linux用户的密码
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/213232.html