如何使用python crypt或bcrypt为useradd创建加密密码?

时间:2017-02-25 23:41:17

标签: linux bash python-2.7 crypt

我试图为debian / ubuntu useradd创建一个哈希密码。我使用python创建哈希并使用bash创建具有哈希密码的用户。我认为我做错了,因为当我尝试使用用户密码登录时,它无法正常工作。我想它希望我加入实际的哈希值。

在python中,我创建了这样的加密哈希密码。它是在python类中,但我缩短了它,所以你可以得到图片。

import crypt
import random

def salt(self):
    saltchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    return random.choice(saltchars) + random.choice(saltchars)

def custom_user(self):
    user = self.textEditUser.text()
    password = self.textEditPassword.text()
    hashed_pw = crypt.crypt(str(password), "$6$"+self.salt()) # say password is "password"
    print hashed_pw #returns $6$5l$lrm4UvmiYZcducdBFs8NortA.zeWuXrnmoVEYtLxmmDIGLN.9gjs.X6Z/fR6wDkh06lnDN8LTjzwrImSCR72T/

我使用单独的bash脚本来创建这样的用户:

#!/bin/bash

PASSWORD='$6$5l$lrm4UvmiYZcducdBFs8NortA.zeWuXrnmoVEYtLxmmDIGLN.9gjs.X6Z/fR6wDkh06lnDN8LTjzwrImSCR72T/'
USERNAME="Jon"

if id -u $USERNAME >/dev/null 2>&1; then
    userdel -r -f $USERNAME
    useradd -m -p $PASSWORD -s /bin/bash $USERNAME
    usermod -a -G sudo $USERNAME
    echo $USERNAME:$PASSWORD | chpasswd

else
    useradd -m -p $PASSWORD -s /bin/bash $USERNAME
    usermod -a -G sudo $USERNAME
    echo $USERNAME:$PASSWORD | chpasswd
fi

我怎样才能使用密码而不是哈希值来登录?

1 个答案:

答案 0 :(得分:-1)

python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"