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/shadow
chpasswd