bash使用密码创建用户:密码未按预期设置

时间:2017-11-23 20:53:24

标签: bash authentication passwords ubuntu-16.04

我想以非交互方式设置用户名和密码,但密码设置不正确。

create_user.sh

user=username
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
echo $user $pass
useradd -m -p $pass $user

在终端:

$ sudo ./create_user.sh
username pa8fg5oAyLo8g
$ tail -1 /etc/passwd
username:x:1004:1004::/home/username:
$ su - username
Password: password
su: Authentication failure

我做错了什么?

更新

这样可行,但它会将username password打印到终端窗口,这可能是不可取的,并且它需要硬编码值:

create_user.sh

user=username
pass=password
useradd -m username
echo 'username:password' | chpasswd

在终端:

$ sudo ./create_user.sh
username password
$ su - username
Password: password
username@hostname:~$ 

1 个答案:

答案 0 :(得分:0)

我的语法错了。这是一个工作版本:

create_user.sh

user=username
pass=password
salt=Az # or any 2-character string from [A-za-z]
# Encrypt the password
pass=$(perl -e 'print crypt($ARGV[0], $salt)' $pass)
echo $user $pass
useradd -p $pass -m $user

在终端:

$ sudo ./create_user.sh
username AzSzB2uy8JFlk
$ su - username
Password: password
username@hostname:~$