+++++++++++++++++++++++++++++++++++++++++++
标题:python批量修改Linux服务器密码
时间:2019年2月24日
内容:基于python实现批量修改linux主机密码。
重点: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是否连接成功进行判定的)

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

  1. 利用expect批量修改Linux服务器密码

    一个执着于技术的公众号 背景 修改Linux系统密码,执行passwd即可更改密码.可如果有成千上百台服务器呢,通过ssh的方式逐一进行修改,对我们来说,工作量是非常大,且效率非常低下.因此采用批量修 ...

  2. ansible批量修改linux服务器密码的playbook

    从网上找到批量修改Linux服务器root密码的playbook. 使用方法: 1.输入要修改的inventory组 2.按需要,在playbook中输入要修改的IP.新密码,如下: - hosts: ...

  3. 批量修改Linux系统密码

    截取主机IP地址最后一位数.匹配一组定义好的自定义密码.使用chpasswd修改主机账户密码 截图主机IP [root@web01 ~]# ip addr 1: lo: <LOOPBACK,UP ...

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

    搭建环境 centos 7.4 使用脚本 python 批量修改connect用户的密码 生成密码为随机密码 保存为xls文档 #!/usr/bin/env python # -*- coding: ...

  5. 如何修改Linux主机名

    Linux 下什么都比较麻烦,就连修改主机名也不例外.我们就下文说一下具体方法. Linux 安装好后,其默认的主机名是 localhost.修改 Linux 主机名需要3步. 使用 hostname ...

  6. 修改linux用户密码

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

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

    linux一般使用ifconfig命令修改linux主机的ip.网关或子网掩码. 1.命令格式: ifconfig [网络设备] [参数] 2.命令功能: ifconfig 命令用来查看和配置网络设备 ...

  8. 修改Linux主机名与IP之间的映射关系

    linux主机版本: Distributor ID: UbuntuDescription: Ubuntu 14.10Release: 14.10 一.修改linux主机名 1.使用hostname命令 ...

  9. python批量给云主机配置安全组

    python批量给云主机配置安全组 用公有云的思路去思考去实现一个安全稳定.可伸缩和经济的业务构架,云运维是有别与传统运维的,比如说了解公有云的都知道安全组的概念,安全组跟防火墙功能很相似,那我的机器 ...

随机推荐

  1. 自动化运维工具fabric使用教程

    摘要:当需要同时管理许多服务器时,如果我们一台一台登陆上去操作会显得费时又费力.此时我们可以用fabric这个包提供的API来编写python脚本完成服务器集群的统一管理. 核心原理:fabric为主 ...

  2. Java消息中间件----ActiveMQ入门①

    一 首先到ActiveMQ下载安装包 Active官网地址http://activemq.apache.org/activemq-5150-release.html 如图所示,有两个下载的链接,我们下 ...

  3. C#设计模式之二十一访问者模式(Visitor Pattern)【行为型】

    一.引言 今天我们开始讲“行为型”设计模式的第九个模式,该模式是[访问者模式],英文名称是:Visitor Pattern.如果按老规矩,先从名称上来看看这个模式,我根本不能获得任何对理解该模式有用的 ...

  4. java开发环境配置——IntelliJ IDEA

    关于开发工具,之前是用eclipse,后来用了一段时间idea后,发现idea比eclipse好用太多了,所以推荐大家用idea 官网下载地址:https://www.jetbrains.com/id ...

  5. apply,call和bind的用法区别

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. vue关闭代码检查eslint

    confing/index.js 文件里面的 useEslint 改成false就可以关闭代码检查了   不过为了代码的规范性,不建议关闭!

  7. 【代码笔记】Web-CSS-CSS样式列表(url)

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  8. Flutter路由的跳转、动画与传参(最简单)

    跳转 命名路由 在文件构建时先设置路由参数: new MaterialApp( // 代码 routes: { "secondPage":(BuildContext context ...

  9. Android ContenObserver 监听联系人数据变化

    一.知识介绍 1.ContentProvider是内容提供者 ContentResolver是内容解决者(对内容提供的数据进行操作) ContentObserver是内容观察者(观察内容提供者提供的数 ...

  10. Java文件输入保存,统计某个字符串,统计所有字符串

    import java.io.*; import java.util.*; /** * Created by Admin on 2018/3/20. */ public class FileSaveT ...