ファイルからユーザーを追加するスクリプトがあります。私が知っている限り、ユーザーは正常に追加されますが、ログインしようとするとスクリプトによって提供されたパスワードは機能しません。これが正常かどうかはわかりませんが、/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]
レコードは改行で区切られます。
答え1
によるとuseradd --help
:
-p, --password PASSWORD encrypted password of the new account
だからあなたがしなければならないことは通過することです暗号化パスワード:
-p $(openssl passwd "the_password")