zoukankan      html  css  js  c++  java
  • Python脚本批量修改服务器密码

    搭建环境

    centos 7.4

    使用脚本

    python
    批量修改connect用户的密码
    生成密码为随机密码 保存为xls文档
     
    passwd_chang
    
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import random
    import string,os
    import pexpect
    import xlrd,xlwt
    from xlwt import Style
    from xlutils.copy import copy
     
    def passwd_creat():
        salt = ''.join(random.sample(string.ascii_letters + string.digits, 8))
        return salt
     
    def passwd_change(userip, oldpasswd, newpasswd):
        child = pexpect.spawn('ssh connect@'+userip)                 ###connect 用户可改root
        fout = file('/home/shell/passwd/newpasslog.txt','a')            ##定义日志文件,
        child.logfile = fout
        index = child.expect(['password:','continue connecting (yes/no)?'])
        if index == 0:
            child.sendline(oldpasswd)
        elif index == 1:
            child.sendline('yes')
            child.expect('password:')
            child.sendline(oldpasswd)
        child.expect('$')
        child.sendline('sudo -i')
        child.expect('#')
        child.sendline('echo '+newpasswd+' | passwd --stdin connect')   ### connect 用户可改root
        child.expect('#')
        child.sendline('exit')
     
    def open_excel(passwdfile):
        data = xlrd.open_workbook(passwdfile)
        return data
     
    def get_coldata(passwdfile,sheet_name,num):
        data = open_excel(passwdfile)
        table = data.sheet_by_name(sheet_name)
        coldata = table.row_values(num)
        return coldata
     
    def get_rownum(passwdfile,sheet_name):
        data = open_excel(passwdfile)
        table = data.sheet_by_name(sheet_name)
        rowsNum = table.nrows  #获取总行数
        colsNum = table.ncols   #获取总列数
        return rowsNum,colsNum
     
    def add_newpwd(row, col, str):
        rb = xlrd.open_workbook(passwdfile, formatting_info=True)
        wb = copy(rb)
        ws = wb.get_sheet(0)
        ws.write(row, col, str)
        wb.save(passwdfile)
     
     
    if __name__ == "__main__":
        passwdfile = "/home/shell/passwd/newpasswd.xls"     #文档读取输出路径
        sheet_name = "Sheet1"
        rowsNum, colsNum = get_rownum(passwdfile,sheet_name)
        add_newpwd(0,colsNum,'newpasswd')
        for i in range(1,rowsNum):
            newpasswd = passwd_creat()
            coldata = get_coldata(passwdfile,sheet_name,i)
            passwd_change(coldata[0], coldata[1], newpasswd)
            add_newpwd(i,colsNum,newpasswd)
     

    1. 上传脚本,以及脚本需要的模块

     2.安装所需要的模块。

    2.1 解压gz包。
    2.2 cd到解压文件目录下
    2.3 执行脚本安装模块
    目录下的所有gz包都要安装过程略过

    3.执行脚本测试实验。

    3.1创建一个connect用户并设置密码。并登陆测试。
     
    3.2创建文档(文档名需要和脚本里的名称一样)
    3.3上传文档到定义的路径下
     
    3.4执行脚本测试
    3.5
    sz下载表格查看密码
     
    3.6 使用新密码登陆测试
     
     
  • 相关阅读:
    HTTP的三次握手
    HTTP协议的发展历史
    二分图 (最大匹配 + 最小点覆盖 + 最少路径覆盖 + 最大独立集)
    昂贵的聘礼 POJ
    Cow Contest POJ 3660 (Floyed ) (最短路专题)
    B-number HDU
    You Are the One HDU
    0 or 1 HDU
    Trie树模板 + 例题
    The Shortest Path in Nya Graph HDU
  • 原文地址:https://www.cnblogs.com/xuewenlong/p/12807854.html
Copyright © 2011-2022 走看看