批量修改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)
上传脚本,以及脚本需要的模块
安装所需要的模块
执行脚本测试实验
批量修改Linux密码脚本(Python)的更多相关文章
- linux批量修改root密码脚本
转至:https://blog.csdn.net/onionm/article/details/100514892?utm_medium=distribute.pc_relevant_download ...
- (转)linux passwd批量修改用户密码
linux passwd批量修改用户密码 原文:http://blog.csdn.net/xuwuhao/article/details/46618913 对系统定期修改密码是一个很重要的安全常识, ...
- linux passwd批量修改用户密码
linux passwd批量修改用户密码 对系统定期修改密码是一个很重要的安全常识,通常,我们修改用户密码都使用 passwd user 这样的命令来修改密码,但是这样会进入交互模式,即使使用脚本也不 ...
- python批量修改linux主机密码
+++++++++++++++++++++++++++++++++++++++++++标题:python批量修改Linux服务器密码时间:2019年2月24日内容:基于python实现批量修改linu ...
- saltstack+python批量修改服务器密码
saltstack安装:略过 python脚本修改密码: # -*- coding utf-8 -*- import socket import re import os import sys imp ...
- ansible批量修改linux服务器密码的playbook
从网上找到批量修改Linux服务器root密码的playbook. 使用方法: 1.输入要修改的inventory组 2.按需要,在playbook中输入要修改的IP.新密码,如下: - hosts: ...
- ansible非root用户批量修改root密码
前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...
- Ansible playbook 批量修改服务器密码 先普通后root用户
fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...
- 初学shell,为了练习sed,写了个简单的批量修改文件名的脚本,后来执行时发现系统竟然自带有一个rename命令,顺便也记下了
1 #!/bin/bash 2 <<Comment 3 批量修改文件名的脚本 4 2015/10/24 5 webber 6 Comment 7 ARGS=2 ...
随机推荐
- JS 之循环 应用案例1
应用场景:将el-select下拉框的lab值,显示在下面的详情text框,见下图 用到了 el-select 传值,js循环判断options.code是否等于传进来的值,等于就break; tex ...
- npx的使用方法、场景
目录 npx使用教程 npm与npx的概念 npx的使用场景(对比npm的一些优势) 使用场景1: 想用项目中已经安装好的某个包, 但是不能直接执行(因为没有全局安装, 涉及环境变量的问题) 使用场景 ...
- 论文笔记:(NIPS2018)PointCNN: Convolution On X-Transformed Points
目录 摘要 一.2D卷积应用在点云上存在的问题 二.解决的方法 2.1 idea 2.2 X-conv算子 2.3 分层卷积 三.实验 3.1分类和分割 3.2消融实验.可视化和模型复杂度 总结 仍存 ...
- CentOS 永久修改系统时间
1.查看当前系统时间 date 2.修改当前系统时间 date -s "2018-2-22 19:10:30 3.查看硬件时间 hwclock --show ...
- css文件编码
当css文件的编码
- i春秋CTF-web-upload
------------恢复内容开始------------ 记一道文件上传的题目. 题目告诉我们随意上传,第一想到的当然给他上传一个木马文件然后蚁剑拿shell,上传之后可以在源码里查看我们上传的文 ...
- Android面试官:说说你对 Binder 驱动的了解?
面试官提了一个问题:说说你对 binder 驱动的了解.这个问题虽有些 "面试造火箭" 的无奈,可难点就是亮点.价值所在,是筛选面试者的有效手段.如果让你回答,你能说出多少呢?我们 ...
- Java8新特性(一)之Lambda表达式
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- A Python Environment Detector
The user provide the method to get result(command on remote host), the check standard(a callback fun ...
- MongoDB-03-分片集群
分片集群(Sharding Cluster) 架构图 规划 10个实例:38017-38026 1 configserver:38018-38020 3台构成的复制集(1主两从,不支持arbiter) ...