算是一个实用的例子,定制系统任务,并将随机密码上传至日志服务器,实现定期修改密码;

部分代码:

 1 #!/usr/bin/env python
2 #coding:utf-8
3 import random,string,os,pexpect,time,re
4 def passwd_Create(): #生成随机密码
5 all_choice = string.ascii_letters+string.digits
6 passwd = ''
7 for i in range(8):
8 passwd += random.choice(all_choice)
9 return passwd
10
11 def passwd_Change(name,pwd): #更改密码
12 child = pexpect.spawn('passwd '+name)
13 index = child.expect(['New password',pexpect.EOF,pexpect.TIMEOUT])
14 if index == 0 :
15 child.sendline(pwd)
16 time.sleep(2)
17 child.sendline(pwd)
18 time.sleep(2)
19 child.close(force=True)
20 else:
21 print "expect ERROR"
22 child.close(force=True)
23
24 def log_Note(name,key): #记录日志
25 with open('/var/log/passwd','a+') as log:
26 counts = time.ctime()+" ["+name+"]"+" password is"+" ["+key+"]"+"\n"
27 log.write(counts)
28
29 def checkPw(passwd): #检测密码的强度
30 plen = len(passwd)
31 print plen
32 chpw1 = re.compile(r'.*[A-Z]+.*')
33 chpw2 = re.compile(r'.*[a-z]+.*')
34 chpw3 = re.compile(r'.*\d{1,}.*')
35 chresult1 = chpw1.findall(passwd)
36 print "匹配大写字符: ",chresult1
37 chresult2 = chpw2.findall(passwd)
38 print "小写字符: ",chresult2
39 chresult3 = chpw3.findall(passwd)
40 print "至少一个数字: ",chresult3
41
42 if chresult1 and chresult2 and chresult3:
43 print "You will change passwd use this password"
44 return 0
45 else:
46 print "password is not safety,will generate a safety passwd"
47 return 1
48
49 users = ['root','tom','alice'] #系统用户列表
50
51 if __name__ == "__main__":
52 for i in range(len(users)):
53 a = 1
54 while a != 0 :
55 keys = passwd_Create()
56 a = checkPw(keys)
57 passwd_Change(users[i],keys)
58 log_Note(users[i],keys)

Python实现自动更改系统用户密码,生成随机密码的更多相关文章

  1. linux设置系统用户密码

    目录 一:系统用户密码 1.设置用户密码 一:系统用户密码 1.设置用户密码 1.交互式方法 passwd [用户名] 2.免交互式 echo [设置密码] | passwd --stdin [用户名 ...

  2. [转] 关于linux下通过shell命令(自动)修改用户密码

    关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自 ...

  3. web更改AD用户密码

    web更改AD用户密码 #web更改AD密码 #网站配置 绑定域名ad.test.cn 功能,更改AD用户密码 #参考http://bbs.51cto.com/thread-1379675-1.htm ...

  4. 重设windows10中的sub linux系统用户密码

    原文:重设windows10中的sub linux系统用户密码 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/haiyoung/article/detai ...

  5. Centos7下关于系统用户密码规则-运维笔记

    针对Centos7下的系统用户的密码规则复杂度的设置,处于安全考虑,说明如下: 一.设置密码规则 1)密码长度.有效期 /etc/login.defs文件是当创建用户时的一些规划,比如创建用户时,是否 ...

  6. SQL Server如何更改系统用户dbo的所属账号

    在SQL Server的每个数据库中都有一个dbo系统用户,dbo是系统默认创建的,无法被删除,如下: dbo在内部其实是绑定了一个SQL Server账号的,可以通过其属性查看Login name, ...

  7. VMware虚拟化NSX-Manager命令行更改admin用户密码

    1.1    登录到NSX-Manager命令行界面,输入用户名和密码登录到用户模式 Log in to the vSphere Client and select an NSX virtual ap ...

  8. changepassword.c 0.9:一个通过WEB界面更改LINUX用户密码的程序

    偶然看到一个用C语言写的CGI程序,可以以WEB界面(无需单独再写HTML)的方式修改用户自己的密码.该程序具有同时修改samba及squid密码的能力. 步骤: 1.下载并解压,并读一下README ...

  9. Centos6下关于系统用户密码规则-运维笔记

    随着linux使用的普遍,对于linux用户以及系统的安全要求越来越高,而用户密码复杂程度是系统安全性高低的首要体现.因此如何对linux下用户的密码进行规则限制,以保证用户必须使用复杂的密码,杜绝用 ...

随机推荐

  1. XSS工具类,清除参数中的特殊字符

    package com.xss; import java.util.regex.Pattern; /** * XssUtil 工具类 */ public class XssUtil { static ...

  2. UiPath RPA培训2021.4版本解读 (2021年5月)-RPA学习天地

    2021年5月26日Ui Path发布了新产品2021.4版本,我们来看看有什么新功能: 说明一下uipath的版本发布节奏: uipath的版本一般是每年发布2个版本,其中5月份发布的一般是FTS版 ...

  3. 【LeetCode】633. Sum of Square Numbers 解题报告(python & Java & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 列表生成式 循环 日期 题目地址:https ...

  4. 【LeetCode】684. Redundant Connection 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 并查集 日期 题目地址:https://leetco ...

  5. codeforce-601A. The Two Routes(最短路)

    题意: 给你N个点表示N个站,有汽车和火车,汽车只能走公路,火车只能走铁路. 然后给你M条双向路,代表这两个点之间有铁路连接. 然后告诉你如果两个点之间没有铁路,那么就是公路连接. 问你汽车和火车都到 ...

  6. python学习第五天:python基础(string、list、tuple)

    首先,什么是sequence(序列)操作? 字符串的特性被称为sequence(序列) H o w a r e y o u ? 就好像存储在一个个连续的单元格里面,每个单元格存储一个字符,每个字符就是 ...

  7. uniapp动态修改导航栏

    1.修改导航栏buttons 如图动态修改角标 <template> <view> </view> </template> <script> ...

  8. 【MySQL作业】MySQL函数——美和易思数学函数和控制流函数应用习题

    点击打开所使用到的数据库>>> 1.添加一条商品记录.  商品编码  goodsCode 商品名 goodsName 种类 category 单价 unitPrice 02005 夏 ...

  9. Java中的对象、类、抽象类、接口的理解

    1.对象 对象是个具体的东西,有着明确的属性特征和行为特征. 例如:你手上牵着的女朋友或男朋友就是个具体的对象. 如图中的苏格兰折耳猫,特征是耳朵向下呈折叠状,有着具体的颜色(你看到的颜色),并且和其 ...

  10. JS 在使用hasOwnProperty()函数时报错

    在使用hasOwnProperty()方法判断对象是否具有某种属性时eslint报下列错误: Do not access Object.prototype method 'hasOwnProperty ...