![Bashを使用したパスワードでユーザーを作成する[閉じる]](https://linux33.com/image/105477/Bash%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%A7%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
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