python之创建用户并设置一个随机密码

'''
* 生成一个随机密码
* 创建用户,并将生成的随机密码设置为该用户的密码
* 将用户名和密码保存到一个文件中

* 执行方式: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)

你可能感兴趣的:(Python)