python批量修改linux主机密码

+++++++++++++++++++++++++++++++++++++++++++
标题:python批量修改Linux服务器密码
时间:2019年2月24日
内容:基于python实现批量修改linux主机密码。
作者:Bruce
重点:python使用SSH模块+循环操作,实现linux主机密码批量修改。
注意:本脚本是在实验环境下生成的,如果线上使用,请先进性多次测试,防止出现问题。
+++++++++++++++++++++++++++++++++++++++++++
1. 包含文件
1.1 脚本文件
注意:建议不要直接复制使用,在linux平台用vi创建文件,将内容写进去,使用tab键进行缩进,本文中的缩进可能存在问题。
import paramiko
import os

test_fail=‘result.fail‘
if os.path.exists(test_fail):
  os.remove(test_fail)

test_ok=‘result.ok‘
if os.path.exists(test_ok):
  os.remove(test_ok)

pass_file=open(‘passwd‘,‘r‘)
for line in pass_file:        //打开文件并读取数据
  inform=line.split()
  ipaddr=inform[0]
  username=inform[1]
  old_pass=inform[2]
  new_pass=inform[3]
  port=22
  try:
    ssh=paramiko.SSHClient()    //启动ssh
    ssh.load_system_host_keys()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname=ipaddr,username=username,password=old_pass,timeout=5)    //连接到服务器
    ssh.exec_command(‘echo "%s"|passwd --stdin root‘%new_pass)    //修改服务器密码
    ret_ok=open(‘result.ok‘,‘a+‘)    //输出结果
    ret_ok.write(ipaddr+" is OK\n")
    ret_ok.close()
    ssh.close()
  except Exception as e:
    ret_fail=open(‘result.fail‘,‘a+‘)    //输出结果
    ret_fail.write(ipaddr+" is failed\n")
    ret_fail.close()
pass_file.close()

1.2 配置文件
注意:
文件名为passwd,为题python脚本提供数据
文件内容如下:
192.168.44.100 root pass_old1 pass_new1
192.168.44.110 root pass_old2 pass_new2
192.168.44.120 root pass_old3 pass_new3

1.3 脚本使用指导文件
步骤一:上传压缩包到Linux主机
步骤二:unzip change_password.zip
步骤三:chmod a+x change_pass.py
步骤四:将服务器信息写入passwd文件
第一列 服务器IP地址
第二列 需要修改密码的用户名
第三列 原始密码
第四列 新密码
注意:每列之间使用空格隔开,并且passwd与change_pass.py在同级目录下
步骤五:python change_pass.py
注意:脚本执行完成后,在当前目录下生成result.ok和reslut.fail分别记录主机密码的修改的成功与失败的情况(成功或失败是通过ssh是否连接成功进行判定的)

原文地址:https://www.cnblogs.com/lv1572407/p/10427093.html

时间: 2024-10-12 03:37:50

python批量修改linux主机密码的相关文章

使用paramiko模块批量修改Linux主机的密码

1.paramiko介绍 paramiko是基于python实现的一个SSH远程安全连接,支持认证及秘钥方式.可实现远程命令执行.文件传输.中间SSH代理等功能. 2.安装paramiko模块 shell>pip install paramiko 3.批量修改Linux主机密码脚本 #!/usr/bin/env python #coding:utf-8 #author:weixiaoxin import paramiko f=open('server.txt','r') for i in f:

python批量修改SecureCRT会话密码

#利用python批量修改SecureCRT 会话密码 # -*- coding:utf-8 -*- import os,re def CRT_Path(path,*args,**kwargs):     for (dirpath, dirnames, filenames) in os.walk(path):         for file in filenames:             fullname = os.path.join(dirpath, file)             

自动批量修改linux用户密码

通常会有多台服务器需要同时修改密码,此时可不必一台一台去操作,可以借用expect工具实现批量密码修改工作.涉及到四个文件,ip地址列表文件(iplist.txt),远程密码修改脚本(password.sh),复制时调用密码脚本scp.exp,密码修改主程序(chpasswd.sh),需将四个文件放置在/root目录下,如果放在其它目录,需修改脚本中对应的路径 在执行脚本的机器上安装expect,使用rpm包安装时需要依赖tcl包,也可使用yum安装,使用mkpasswd生成密码,一次生成一次,

python批量修改服务器密码,同时保存execl表格

#!/usr/bin/env python #coding:utf8 #随机生成自定义长度密码 from random import choice import string,pickle def GenPassword(length=8,chars=string.ascii_letters+string.digits): return ''.join([choice(chars) for i in range(length)]) def passlist(r_user,c_user,ip_li

Python批量修改一个目录文件名

#!/usr/bin/env python # -*- coding:utf-8 -*- import re  import os import time # str.split(string) 分割字符串 # '连接符'.join(list) 将列表组成字符串 def change_name(path): global i if not os.path.isdir(path) and not os.path.isfile(path): return False if os.path.isfil

组策略技巧之批量修改本地管理员密码

         基于一些特殊的原因我们需要修改本地管理员的密码,正常情况下,我们需要手动修改 但是在域环境中,我们可以通过组策略来统一修改本地管理员密码.修改方法个人找到的可以 分为两种,一种是通过脚本来统一更改(缺点很明显是比较死板,缺乏灵活性)一种是通过组策略 新增加的首选项功能来统一修改(有点很明显就是灵活性很强,定制型好).         一.使用脚本来修改密码 脚本是用的是VBS脚本 strComputer = "."   Set objUser = GetObject(

修改linux用户密码

对于初学者来说,如何修改linux用户密码也不是件容易的事,其实非常简单,下面举例说明: 如果是以root身份登录,修改root密码.只要输入 passwd 就会出现: New password:  Retype new password:  按提示输入密码确认即可. 如果想更改其他用户密码,只要输入passwd. 对于初学者来说,如何修改linux用户密码也不是件容易的事,其实非常简单,下面举例说明: 如果是以root身份登录,修改root密码.只要输入 passwd 就会出现: New pa

如何修改linux主机名才能永久生效?

如何修改linux主机名才能生效?很多人使用hostname 主机名 来修改,其实这个只是做为暂时的,重启后将恢复到原来的名字.很多人说修改/etc/hosts文件,其实这个文件里的主机名只是为来提供给dns解析的.如果你用不上dns,只需要修改主机名,那修改这个没用.其实是修改这个文件etc/sysconfig/network这个文件里的主机名.NETWORKING=yesHOSTNAME=localhost.localdomain(主机名) 完整步骤:第一步查看当前主机名称:#hostnam

转: 如何用linux命令修改linux主机ip网关子网掩码

linux一般使用ifconfig命令修改linux主机的ip.网关或子网掩码. 1.命令格式: ifconfig [网络设备] [参数] 2.命令功能: ifconfig 命令用来查看和配置网络设备.当网络环境发生改变时可通过此命令对网络进行相应的配置. 3.命令参数: up 启动指定网络设备/网卡. down 关闭指定网络设备/网卡.该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除. arp 设置指定网卡是否支持ARP