linux批量添加10个用户并将其随机密码和用户名写入文件
需求:
批量新建10个测试用户,并且让其密码随机,把用户名和密码写入一个文件,并有创建时间和创建者
#!/usr/bin/python # -*- coding: utf-8 -*- import os import random import time import io def deluser(nums): '''删除用户测试用户''' for i in range(nums): username = 'stu' + str(i) linux_cmd = 'userdel -r {username}'.format(username=username) cmd_stat = os.system(linux_cmd) if cmd_stat == 0: print(username + " userdel: OK") else: print(username + " userdel: FAIL") def create_user(nums, record_adduser): '''添加用户测试用户''' if isinstance(nums, str): nums = int(nums) symbol = '1234567890' if not os.path.exists(os.path.dirname(record_adduser)): # 没有这个目录创建 os.mkdir(os.path.dirname(record_adduser)) # 这个文件直接打开,没有就创建 f = io.open(record_adduser, 'a+', encoding='utf-8') for i in range(nums): passwd = ''.join(random.sample(symbol, 6)) username = 'stu' + str(i) linux_cmd = 'useradd {username} && echo "{passwd}" | passwd {username} --stdin{linesep}'.format(username=username, passwd=passwd, linesep=os.linesep) current_user = os.popen('whoami').read().strip() cmd_stat = os.system(linux_cmd) tmp = str(time.strftime('%Y-%m-%d %H:%M ', time.localtime()) + \ ' ' + current_user + ' ' + linux_cmd + ' {stat}') if cmd_stat == 0: print(username + " useradd: OK") tmp = tmp.format(stat='OK').decode('utf-8') # 创建成功写一句 f.write(tmp) else: print(username + " useradd: FAIL") tmp = tmp.format(stat='FAIL').decode('utf-8') f.write(tmp) # f.flush() f.close() if __name__ == '__main__': record_adduser = '/root/adduser{sep}useradd.log'.format(sep=os.path.sep) create_user(10, record_adduser) # deluser(10) # python 2 下,str 是 bytes类型,文件通过 io模块打开