ファイルからユーザーを追加するスクリプトがあります。私の知る限りユーザーを追加しますが、スクリプトで提供されたパスワードにログインしようとしても機能しません。これが正常かどうかはわかりませんが、/ etc/shadowファイルには正しいパスワードがプレーンテキストで表示されます。シャドウファイルはハッシュのみを表示することになっていると思いましたか?
これがスクリプト用のコードです。
#/bin/bash
file="/Scripts/FormattedFile.txt"
while IFS=: read -r f1 f2 f3 f4
do
validID=$( echo "$f3" | cut -b 4,5,6,7,8,9 )
comment="${f1} ${f2}"
useradd -m -p "$f3" -u "$validID" -c "$comment" "$f1"
echo "Added user $f1."
done < "$file"
結果は、正しいユーザー名、ID、およびホームディレクトリを持つユーザーですが、ログインできません。スクリプトがファイルを正しく読み取っており、ファイルからプルしたフィールドも正しいことを知っています。フィールド3は、長い9桁の文字列から取得した6桁の数字です。
各レコードの形式は次のとおりです。
firstname:lastname:H00123456:[email protected]
レコードは改行で区切られます。
による useradd --help
:
-p, --password PASSWORD encrypted password of the new account
だからあなたがする必要があるのはencryptedパスワードを渡すことです:
-p $(openssl passwd "the_password")