使用python脚本修改Linux用户的密码

本代码仅仅是作为一个示例代码,并不能拿去直接用于生产环境非常的危险。请务必在生产环境中注意安全性,并确保适当保护和访问控制措施。

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)

整体使用的python3flask搭配,通过HTTP方式提供外部接口,通过外部接口调用来实现修改Linux操作系统的用户密码。

通过访问http://运行脚本的主机IP:5000/change_passwordPOST形式提交参数usernamepassword来指定某个用户的新密码进行重新设置密码。

代码中change()函数用于接收和响应前端传来的参数,并将拿到的参数传递给change_password()函数。所以真正修改密码的地方在change_password()函数中。大家都知道,在Linux中使用passwd命令修改某个用户密码时,是需要输入两遍新密码的,这就产生了命令行交互的问题。对于这个问题在pexpect模块中找到了解决方案。

pexpect是一个用于自动化和控制外部进程的库。它主要用于与命令行程序或其他类似交互式应用程序进行通信,并模拟用户输入和读取输出。

欢迎大家关注我的公众号,将会为大家推荐更优质的内容!

原文始发于微信公众号(青檬小栈):使用python脚本修改Linux用户的密码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/213232.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!