• 批量修改Linux密码脚本(Python)


    搭建环境

    centos 7.4

    使用脚本

    python
    批量修改connect用户的密码
    生成密码为随机密码 保存为xls文档
     
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    ############################################
    #通过脚本批量修改Linux主机密码并保存到xls中
    #雪文龙 2018-5-18 V1
    #
    #修改者:xxx
    #修改时间:2018-xx-xx 
    #修改内容:修改内容描述
    ############################################
    
    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.1 创建转到脚本,模块包存放地址。
    1.2安装上传工具。
    1.3上传模块包脚本。
    rz上传
    sz下载

    安装所需要的模块

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

    执行脚本测试实验

    3.1创建一个connect用户并设置密码。并登陆测试。
     
    3.2创建文档(文档名需要和脚本里的名称一样)
    3.3上传文档到定义的路径下
     
    3.4执行脚本测试
    3.5
    sz下载表格查看密码
     
    3.6 使用新密码登陆测试
     
     
     
  • 相关阅读:
    java unicode转中文
    java常用
    Intellij IDEA常用快捷键——Mac版
    mac 快捷键
    thrift 学习
    ubuntu上的翻译软件,看论文神器
    linux中jupyter notebook中切换虚拟环境
    02_opencv_python_图像处理进阶
    01_opencv_python_基本图像处理
    python刷剑指offer(21-40)(一刷)
  • 原文地址:https://www.cnblogs.com/xuewenlong/p/13065234.html
Copyright © 2020-2023  润新知