1

我想在debian 7上使用fabric创建一个具有随机密码的新用户。

fabfile 看起来像这样:

import hashlib
import string
import random

def new_user(user):
    passwd = random_pass()
    passwd_sha512 = "%s" % hashlib.sha512(passwd).hexdigest()
    sudo("useradd %s --password %s" % (user, passwd_sha512))


def random_pass(size=30, chars=string.ascii_letters + string.punctuation):
    return ''.join(random.choice(chars) for x in range(size))

这里有什么问题?块大小?中也缺少加密类型($6$用于 sha512)/etc/shadow

我试图将它添加到参数中--password $6$%s

有人可以指出我正确的方向吗?

4

2 回答 2

0

您可能会发现crypt模块更适合计算加密密码。

于 2013-09-25T22:05:34.380 回答
0

您的密码可能包含“奇怪”字符,这将使实际的 cmd 字符串不是您所期望的。使用subprocess.call(使用字符串数组)而不是单个字符串可能会更成功。

import subprocess
subprocess.call(['sudo',
                 'useradd',
                 '--password', passwd_sha512,
                 user])
于 2013-09-26T09:44:54.417 回答