需求:

  批量新建10个测试用户,并且让其密码随机,把用户名和密码写入一个文件,并有创建时间和创建者

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import random
  5. import time
  6. import io
  7.  
  8. def deluser(nums):
  9. '''删除用户测试用户'''
  10. for i in range(nums):
  11. username = 'stu' + str(i)
  12. linux_cmd = 'userdel -r {username}'.format(username=username)
  13. cmd_stat = os.system(linux_cmd)
  14. if cmd_stat == 0:
  15. print(username + " userdel: OK")
  16. else:
  17. print(username + " userdel: FAIL")
  18.  
  19. def create_user(nums, record_adduser):
  20. '''添加用户测试用户'''
  21. if isinstance(nums, str):
  22. nums = int(nums)
  23. symbol = '1234567890'
  24. if not os.path.exists(os.path.dirname(record_adduser)):
  25. # 没有这个目录创建
  26. os.mkdir(os.path.dirname(record_adduser))
  27. # 这个文件直接打开,没有就创建
  28. f = io.open(record_adduser, 'a+', encoding='utf-8')
  29. for i in range(nums):
  30. passwd = ''.join(random.sample(symbol, 6))
  31. username = 'stu' + str(i)
  32. linux_cmd = 'useradd {username} && echo "{passwd}" | passwd {username} --stdin{linesep}'.format(username=username,
  33. passwd=passwd, linesep=os.linesep)
  34. current_user = os.popen('whoami').read().strip()
  35. cmd_stat = os.system(linux_cmd)
  36. tmp = str(time.strftime('%Y-%m-%d %H:%M ', time.localtime()) + \
  37. ' ' + current_user + ' ' + linux_cmd + ' {stat}')
  38. if cmd_stat == 0:
  39. print(username + " useradd: OK")
  40. tmp = tmp.format(stat='OK').decode('utf-8')
  41. # 创建成功写一句
  42. f.write(tmp)
  43. else:
  44. print(username + " useradd: FAIL")
  45. tmp = tmp.format(stat='FAIL').decode('utf-8')
  46. f.write(tmp)
  47. # f.flush()
  48. f.close()
  49.  
  50. if __name__ == '__main__':
  51. record_adduser = '/root/adduser{sep}useradd.log'.format(sep=os.path.sep)
  52. create_user(10, record_adduser)
  53. # deluser(10)
  54.  
  55. # python 2 下,str 是 bytes类型,文件通过 io模块打开

  

  

linux批量添加10个用户并将其随机密码和用户名写入文件的更多相关文章

  1. 实现批量添加10个用户,用户名为user01-10,密码为user后面跟3个随机字符

    #!/bin/bash ` do user="user$i" password=$( | md5sum | ) useradd user$i echo "$user$pa ...

  2. 批量创建10个用户stu01-stu10

    1.批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell循环(例如:for,while等),只能用命令及管道实现. ##方法1: [root@server tmp]# ...

  3. linux批量添加用户和批量修改密码

    一.批量创建用户通过命令newusers可以实现批量的创建用户.这个命令的用法为 newusers file.txt(一个文本文件)文本文件内存放需要批量添加的用户信息但是对格式有要求格式:pw_na ...

  4. Linux 批量添加用户

    #!/bin/bashfor i in $(seq 1 50)     #会建立1-50的用户douseradd student$i -g studentecho student$i |passwd ...

  5. linux (RHEL) 添加和删除用户

    linux添加新用户使用 useradd -----create a new user or update default new user information 删除用户使用userdel  -- ...

  6. linux mysql添加、删除用户、用户权限及mysql最大字段数量

    1.  登录: mysql -u username -p 显示全部的数据库: show databases; 使用某一个数据库: use databasename; 显示一个数据库的全部表: show ...

  7. Linux(7):用户管理

    用户管理 让一个脚本或命令开机自启动的方法: # 方法一: 把脚本放到 /etc/rc.local 中 # 方法二: 把脚本或命令通过 chkconfig 管理 # 如何让一个脚本被 chkconfi ...

  8. Linux实现批量添加用户及随机密码小脚本

    通过chpasswd命令可实现迅速为用户批量设置密码     实例:写一个脚本,实现批量添加20个用户user1-20,密码为用户名和后面跟5个随机字符 #!/bin/sh # 思路:通过for循环, ...

  9. Linux运维六:用户管理及用户权限设置

    Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...

随机推荐

  1. g4e基础篇#3 Git安装与配置

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  2. 在Ubuntu14.04上搭建自己的OpenVPN服务器并通过它上网

    背景 学校宿舍端口可以配置静态IP连校内网,也可以连到实验室的服务器:实验室的服务器可以连外网:但宿舍要连外网就要花钱买PPPoE账号了.作为壮哉我大计院的一员,本着发扬专(neng)业(sheng) ...

  3. Hive Getting Started补充

    配置管理概述 Hive从<install-dir>/conf/hive-default.xml中读取它的默认配置 Hive配置目录的位置可以通过设置HIVE_CONF_DIR环境变量的值来 ...

  4. .net打印控件基本用法

    1.在winform上加如下控件 2.代码和用法如下: using System; using System.Collections.Generic; using System.ComponentMo ...

  5. cin\cout输入输出控制

    输入输出流的控制符 控制符 作 用 dec 设置数值的基数为10 hex 设置数值的基数为16 oct 设置数值的基数为8 setfill(c) 设置填充字符c,c可以是字符常量或字符变量 setpr ...

  6. java.lang.Exception: 资源处理失败,失败原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '?????‰' in 'where clause'

    1:Unknown column '?????‰' in 'where clause',这个问题,百度一搜,挺多的,但是貌似好像没有解决我的问题.贴一下我是如何拼接sql的.解决这个sql拼接bug的 ...

  7. asp.net mvc 5 蛋疼的问题

    看图,debugger显示匹配路径没有错.    html开源码看 显示没有实现IController. 然而我的确实现了.  关闭vs 重启

  8. DAY3-“忙里偷闲”找你玩耍2018-1-11

    接触Java第三天,嘿嘿,今天近代史期末考试,提前一小时交卷,回宿舍继续学习,中午去见女神姐姐了,每次见完女神姐姐都是满满地动力.这次女神姐姐告诉我们要好好规划自己的时间,早上花20分钟规划好一天的时 ...

  9. 在HTML页面中获取当前项目根路径的方法

    在HTML页面获取项目根路径的方法: function getRootPath(){ var curPageUrl = window.document.location.href; var rootP ...

  10. 从“思考”的角度来看如何成为一名优质的Java架构师

    导读: 架构师应不应该写代码 为什么别人的系统总是那么烂 成为架构师最困难的门槛是什么? 如何更高效的学习? 1.架构师应不应该写代码 合格的程序员对于明确分配的任务会完成的很好,但是大部分情况下&q ...