栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

CentOS批量修改密码,根据IP自动生成密码

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CentOS批量修改密码,根据IP自动生成密码

本脚本通过python批量对Centos主机进行修改密码的操作,以主机的IP地址的第三四段合成密码。

需要注意,新密码中不能含有$符号,$在liunx是占位符。

如需使用,需要修改IP构造部分,返回语句检测,密码构造部分。

注意:请在大范围使用前进行小量测试!!!

#!/usr/bin/env python
# -*- coding:utf-8 -*-
##################################################新密码中不能含有 $ 符号##################################################
##################################################新密码中不能含有 $ 符号##################################################
##################################################新密码中不能含有 $ 符号##################################################
import paramiko
import time

# 建立SSH服务器的高级会话模式
ssh = paramiko.SSHClient()
# 允许连接不在known_hosts中的服务器
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

################################################
################## 构造IP地址####################
################################################
networkip = '192.168' #网段前半部分
networkip2 = '1' #网段!!!不可与前半段合并,此变量用于合成密码!!!
# 要处理的主机范围(x=1,y=3 即处理 1、2 两台)
x = 1
y = 255
################################################
################################################
################################################
#打开文件准备写入(最好提前创建)
fp=open('d:/test.txt','a')
#返回语句检测(即识别到该语句即为执行成功)
successful = "all authentication tokens updated successfully"
#开始处理
#在要处理的主机范围内开始循环
for clientip in range(x,y) :
    #根据网段和主机合成数据
    #合成IP地址
    ipaddress = str(networkip)+str(networkip2)+"."+str(clientip)
###############################################################
    #合成现有密码
        #顺序密码合成
    password = "Test@"+str(networkip2)+"."+str(clientip)
        #统一现有密码
    #password = 'Test@'
################################################################
    #合成新密码
        #顺序密码合成
    #newpassword = "Test@"+str(networkip)+"."+str(clientip)
        #统一密码
    newpassword = 'Test@123'
##################################################新密码中不能含有 $ 符号##################################################
##################################################新密码中不能含有 $ 符号##################################################
##################################################新密码中不能含有 $ 符号##################################################
    
    print("-------------------------------------------------------------------------------",file=fp)
    print("正在处理...host:%s password:%s newpassword:%s "%(ipaddress,password,newpassword),file=fp)#输出正在处理的主机信息到日志
    print("-------------------------------------------------------------------------------",file=fp)

    try:
        #尝试通过用户名及密码登陆服务器
        ssh.connect(hostname=ipaddress, port=22, username='root', password=password,timeout=2)
        stdin, stdout, stderr = ssh.exec_command('echo "%s" | passwd --stdin root'%newpassword) #单引号内为要执行的语句,不支持交互模式
        #读取返回内容
        fh = stdout.read()
        fh = str(fh)

        print ("执行结果:",file=fp)
        try:
            #返回语句检测,查询是否包含执行成功语句
            print (fh[fh.index(successful):],file=fp)
            #打印IP地址
            print (ipaddress)
            #打印返回语句
            print (fh)
        except:
            #未检测到执行成功语句
            print("host:%s,修改失败"%ipaddress,file=fp)
            #打印错误信息
            print (stderr)
        #关闭SSH连接
        ssh.close()
    except:
        #连接失败或密码错误
        print("host:%s,连接失败"%ipaddress,file=fp)
#关闭文件写入
fp.close()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/757672.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号