我想以非交互方式设置用户名和密码,但密码设置不正确。
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:~$
答案 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:~$