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

部分代码:

 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. 基于 SoC 的卷积神经网络车牌识别系统设计(1)概述

    NOTES: 这是第三届全国大学生集成电路创新创业大赛 - Arm 杯 - 片上系统设计挑战赛(本人指导的一个比赛).主要划分为以下的 Top5 重点.难点.亮点.热点以及创新点:1.通过 Arm C ...

  2. 网络编程之新函数inet_pton和inet_ntop

    1.头文件 1 #include <arpe/inet.h> 2.inet_pton 函数 A.原型 1 int inet_pton(int family, const char *str ...

  3. c++11之find 和 find_if 和 find_if_not 用法

    时刻提醒自己 Note: vector的释放 0.头文件 #include <algorithm> 1.区别 返回范围 [first, last) 中满足特定判别标准的首个元素: 函数 功 ...

  4. ubuntu下载源码clang + llvm+lldb 编译+安装

    [本文可能涉及到Ubuntu安装以下工具:] A.g++ B.gcc C.make D.cmake E.clang(10.0.1)(必须) F.llvm(10.0.1)(必须) G.lldb(10.0 ...

  5. 【LeetCode】393. UTF-8 Validation 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/utf-8-va ...

  6. World is Exploding(hdu5792)

    World is Exploding Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  7. POJ 3278:The merchant(LCA&DP)

    The merchant Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 6864   Accepted: 2375 Desc ...

  8. 深度探索 OpenStack Neutron:BGP(1) 【转载】

    3.4 BGP 原文地址:http://mp.weixin.qq.com/s?src=3&timestamp=1500043305&ver=1&signature=XwiIVV ...

  9. The Hessian Penalty: A Weak Prior for Unsupervised Disentanglement

    目录 概 主要内容 标量情况 向量情况 处于实际(计算量)的考量 应用到生成模型中 代码 Pebbles W., Pebbles J., Zhu J., Efros A., Torralba A. T ...

  10. IT6516替代方案|CS5212替代IT6516|CapstoneCS5212

    IT6516/IT6516BFN:是一款DP显示端口转VGA转换器的嵌入式MCU单片机. IT6516/IT6516BFN结合DisplayPort接收器和三重DAC,通过转换功能支持DisplayP ...