'''
* 生成一个随机密码
* 创建用户,并将生成的随机密码设置为该用户的密码
* 将用户名和密码保存到一个文件中
* 执行方式:python3 useradd.py 用户名
'''
#!/usr/local/bin/python3
#导入模块
from random import choice
from string import ascii_letters, digits
from sys import argv #使用位置参数
from subprocess import run,PIPE
pwd_lib = ascii_letters + digits #数字和字母组成的密码库
#生成随机的8位密码
def gen_pwd(lenth = 8):
str_list = [choice(pwd_lib) for i in range(lenth)]
return ''.join(str_list)
#创建用户并设置密码
def create_user(pwd):
user = argv[:] #接收位置参数,实际上是一个列表
if len(user) != 2:
print('\033[33m参数输入错误\033[0m')
exit()
rc = run(['id %s &>/dev/null' % user[1]], shell=True)
if not rc.returncode :
print('\033[33m%s已经存在\033[0m' %(user[1]))
exit()
run('useradd %s' % (user[1]), shell=True)
rc_pwd = run('echo %s |passwd --stdin %s' %(pwd, user[1]), shell=True, stdout=PIPE, stderr=PIPE)
if not rc_pwd.returncode:
print('\033[94m%s创建成功\033[0m' %(user[1]))
return user[1]
print('\033[31m%s创建失败\033[0m' % (user[1]))
#将用户名和密码写入文件
def save_user(user,pwd,fname):
# fname = '/opt/userinfo.txt'
with open(fname, 'a+') as f:
f.write('%s:%s \n' %(user,pwd))
#####################################主程序#####################################
if __name__ == '__main__':
fname = '/opt/userinfo.txt'
password = gen_pwd()
user = create_user(password)
save_user(user, password, fname)