Python自动批量修改服务器密码
工作中,我们经常会定期更换服务器密码,如果手动去修改,不仅费时,而且容易出错。下面提供了一种思路,可以实现批量、自动修改服务器密码。
大致思路:首先,为每一台服务器设定一个唯一标识;其次,将每台服务器的唯一标识、新密码、修改指令等信息存入专门的密码服务器;最后,每台服务器定时去查询密码服务器中的信息,收到修改指令后,自行修改密码。
1、设定服务器唯一标识
每一台服务器都需要一个唯一标识,便于查找、定位。不要使用IP地址、MAC地址,因为一台服务器可能有多个IP,多个网卡,IP地址也可能经常换来换去,这样就不准确。这里我使用了CUPID+ 主板序列号的组合作为唯一标识。我们测试了30多台服务器,发现这个组合可以满足需要。当然,也有其他的方法,如给每台服务器设置配置文件等。下面是获取硬件信息的方法:
def get_disk_info():
encrypt_str = ""
c = wmi.WMI()
for cpu in c.Win32_Processor():
# 获取CPUID
encrypt_str = encrypt_str + cpu.ProcessorId.strip()
for board_id in c.Win32_BaseBoard():
# 主板序列号
encrypt_str = encrypt_str + board_id.SerialNumber.strip() return encrypt_str
2、设定新密码
在数据库中维护服务器唯一标识,新密码,更新状态,指令等信息。为了安全起见,新密码可以使用密文,当需要修改的时候,把密文转换成明文。建议使用非对称加密算法,并增加密码的复杂度。如果使用主流的一些算法,如MD5等,对于简单的密码还是有办法可以破解的。也可以将新密码分成几部分,使用的时候再进行拼接或者特殊处理。这些做法都是尽可能的提高密码的安全性。
3、修改密码
每台服务器定时去检测密码服务器上的指令,如果需要修改,则立即修改,并更新修改状态等。
def changepwd():
# 获取唯一标识
cupid = get_disk_info()
# 获取修改指令及新密码
prow = getpwd(cupid)
if len(prow) > 0:
pnew = prow[0].get("newpwd")
puser = getpass.getuser()
cmd = "net user "+puser+" "+pnew
# 修改密码
res = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
recode = str(res.returncode)
# 更新状态
if "0" == recode:
sql = "update autopwd set flag='0' where sid=\'%s\'" % (pnew, cupid)
setpwd(sql)
log("change password status", str(res.returncode))
else:
log("change failed", "not find cpuid")
sys.exit(0)
本案例中,修改密码命令是Windows的net命令,如果是Linux服务器,只需把对应的命令换成对应的Linux下的即可。以后运维人员,只需制定好新的密码、修改指令、修改时间,其余的均自动完成。
Python自动批量修改服务器密码的更多相关文章
- Python脚本批量修改服务器密码
搭建环境 centos 7.4 使用脚本 python 批量修改connect用户的密码 生成密码为随机密码 保存为xls文档 passwd_chang #!/usr/bin/env python ...
- python实现批量修改服务器密码
需求:机房.线上有多台主机,为了保障安全,需要定期修改密码.若手动修改,费时费力易出错. 程序应该满足如下需求 : 1.在现有的excel密码表格,在最后一个字段后面生成新的密码,另存为一个新的exc ...
- saltstack+python批量修改服务器密码
saltstack安装:略过 python脚本修改密码: # -*- coding utf-8 -*- import socket import re import os import sys imp ...
- Ansible playbook 批量修改服务器密码 先普通后root用户
fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...
- ansible批量修改服务器密码
看了一下网上代码大多数是ansible-playbook实现的,需要写一个脚本,或者手动传递变量进去. 以前用python tcp模块写过客户端主动上报修改密码脚本 今天写一个ansible主控客户端 ...
- [转] 关于linux下通过shell命令(自动)修改用户密码
关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自 ...
- (转)linux passwd批量修改用户密码
linux passwd批量修改用户密码 原文:http://blog.csdn.net/xuwuhao/article/details/46618913 对系统定期修改密码是一个很重要的安全常识, ...
- linux passwd批量修改用户密码
linux passwd批量修改用户密码 对系统定期修改密码是一个很重要的安全常识,通常,我们修改用户密码都使用 passwd user 这样的命令来修改密码,但是这样会进入交互模式,即使使用脚本也不 ...
- python批量修改ssh密码
由于工作需要本文主结合了excel表格,对表格中的ssh密码进行批量修改 以下是详细代码(python3): #!/usr/bin/env python#-*-coding:utf-8-*- impo ...
随机推荐
- LGP2414题解
难不成是我后缀自动机学魔怔了,AC 自动机都能套上线段树 题意:给你一颗 Trie,每次询问两个节点 \(u,v\),\(u\) 代表的字符串在 \(v\) 代表的字符串中出现了多少次. 让我们思考一 ...
- Linux移植总结--uboot从不同介质上启动分析
@ 目录 1.启动地址 2.uboot占用内存 3.2440从NAND启动 4.2440从NOR启动 5.某开发板从SPI FLASH启动 1.启动地址 先以2440开发板为例,SDRAM(0x300 ...
- pygame.update()与pygame.flip()的区别
flip函数将重新绘制整个屏幕对应的窗口. update函数仅仅重新绘制窗口中有变化的区域. 如果仅仅是几个物体在移动,那么他只重绘其中移动的部分,没有变化的部分,并不进行重绘.update比flip ...
- SpringMVC前后端分离交互传参详细教程
温故而知新,本文为一时兴起写出,如有错误还请指正 本文后台基于SpringBoot2.5.6编写,前端基于Vue2 + axios和微信小程序JS版分别编写进行联调测试,用于理解前后端分离式开发的交互 ...
- 给windows右键添加快捷启动程序
给windows右键添加快捷启动程序 修改点击空白处的右键 运行--redegit 打开注册表 展开第一个H..C..R 找到 Direcory,展开 找到Background 展开 右键shell, ...
- C++图像处理算法入门前言
一 前言 由于面试时,很多面试官一直强调算法才是根本,编代码不是.有以下两个原因: 第一个原因:即要想成为一名合格的应用工程师(不管是软件还是硬件),都得以学习算法,动手实现算法为核心,这才是核心竞 ...
- scrapy --爬取媒体文件示例详解
scrapy 图片数据的爬取 基于scrapy进行图片数据的爬取: 在爬虫文件中只需要解析提取出图片地址,然后将地址提交给管道 配置文件中写入文件存储位置:IMAGES_STORE = './imgs ...
- 数据结构:DHUOJ 删除链表的顺数及倒数第N个节点
删除链表的顺数及倒数第N个节点 作者: turbo时间限制: 1S章节: DS:数组和链表 题目描述: 可使用以下代码,完成其中的removeNth函数,其中形参head指向无头结点单链表,n为要删除 ...
- MySQL碎片整理小节--实例演示
MYSQL之磁盘碎片整理 清澈,细流涓涓的爱 数据库引擎以InnoDB为主 1.磁盘碎片是什么 InnoDB表的数据存储在页中,每个页可以存放多条记录,这些记录以树形结构组织,这棵树称为B+树. ...
- c语言代码规范
什么叫规范?在C语言中不遵守编译器的规定,编译器在编译时就会报错,这个规定叫作规则.但是有一种规定,它是一种人为的.约定成俗的,即使不按照那种规定也不会出错,这种规定就叫作规范.虽然我们不按照规范也不 ...