linux批量添加10個用戶並將其隨機密碼和用戶名寫入文件
阿新 • • 發佈:2017-11-26
oam deluser name orm os.path inux strip sof pop
需求:
批量新建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模塊打開
linux批量添加10個用戶並將其隨機密碼和用戶名寫入文件