【发布时间】:2013-09-25 17:10:27
【问题描述】:
我想使用fabric 在debian 7 上创建一个具有随机密码的新用户。
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))
这里有什么问题?块大小? /etc/shadow 中也缺少加密类型($6$ 用于 sha512)。
我尝试用--password $6$%s将它添加到参数中。
有人能指出正确的方向吗?
【问题讨论】:
-
在使用 sudo() 调用它之前打印出您的命令。如果您可以复制/粘贴打印的密码并运行它,那么正如 umläute 所暗示的那样,这是一个逃避问题。但是......我会避免尝试使用其他东西(如子流程)来制定解决方法,而无需首先完全理解失败。首先确认Fabric中失败的东西也直接在命令行上失败。另外,我会假设至少“某些”字符对于密码永远无效。您应该研究什么是可接受的密码字符,然后在 random_pass 中说明这一点。
标签: python linux debian shadow fabric