linux 批量重置密码,批量修改Linux密码脚本(Python)

#!/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 创建转到脚本,模块包存放地址。

09804ef2050c1094c43757141e5e50c4.png

1.2安装上传工具。

7c1dd84bbbd8d28a67d0fcc263e24efc.png

1.3上传模块包脚本。

linux 批量重置密码,批量修改Linux密码脚本(Python)_第1张图片

rz上传

sz下载

linux 批量重置密码,批量修改Linux密码脚本(Python)_第2张图片

2.安装所需要的模块。

2.1 解压gz包。

4efc06f557d3f77a1523f80bb0342d66.png

2.2 cd到解压文件目录下

linux 批量重置密码,批量修改Linux密码脚本(Python)_第3张图片

2.3 执行脚本安装模块

4c353a2cfd2473710283b56519495350.png

目录下的所有gz包都要安装过程略过

linux 批量重置密码,批量修改Linux密码脚本(Python)_第4张图片

3.执行脚本测试实验。

3.1创建一个connect用户并设置密码。并登陆测试。

linux 批量重置密码,批量修改Linux密码脚本(Python)_第5张图片

bfa58e155771221d77bfdb550e9a59fa.png

3.2创建文档(文档名需要和脚本里的名称一样)

7525f7b8ad9547786dc36f413ddf712a.png

3.3上传文档到定义的路径下

linux 批量重置密码,批量修改Linux密码脚本(Python)_第6张图片

3eab451ac816065c98976b89113345c1.png

3.4执行脚本测试

dbc1606b934dc43b4c0a0cf576c81b6f.png

3.5

sz下载表格查看密码

0b010d16220f5aee2335e42f6e2b352f.png

9f9b3ecf41f540bb556716b291ef3e4b.png

3.6 使用新密码登陆测试

e7b600c8cf793c0208112a83e4e49f11.png

标签:sheet,name,批量,Python,coldata,Linux,passwdfile,newpasswd,child

来源: https://www.cnblogs.com/xuewenlong/p/13065234.html

你可能感兴趣的:(linux,批量重置密码)