使用 Bash 创建带有密码的用户

使用 Bash 创建带有密码的用户
username=$1
pass=$2
shift
shift
fname=$*
username=$(useradd -m -s /bin/bash -c "$fname" $username)
newpass=$(openssl passwd -1 -salt -stdin $pass)

所以这有效,只是当我尝试登录时,我无法登录。对于我的一生,我不明白出了什么问题。我尝试使用以下语法:

newPass=($username:$pass | chpasswd -c SHA512)

答案1

如果您确实必须这样做,这里有一个可行的脚本:

#!/bin/bash
#
username="$1"
pass="$2"
shift 2
fname="$*"

useradd -m -s /bin/bash -c "$fname" "$username"
echo "$username:$pass" | chpasswd

在这里,明文密码被命令$pass加密。默认情况下,它使用 PAM 来执行加密,因此它将“最适合”目标系统。/etc/shadowchpasswd

相关内容