ユーザー名のスクリプトの生成

ユーザー名のスクリプトの生成

student_list.txt。というファイルに、すべての生徒のユーザー名/パスワードを生成するスクリプトをどのように作成できますか?パスワードはというファイルから取得する必要がありますpasswords.txt。スクリプトを続行する前に、スクリプトを実行しているユーザーがrootであることを確認してください。レコードを読み取る前にファイルが存在することを確認してください。また、すべてのユーザーをグループに追加しますstudents

答え1

paste student_list.txt passwords.txt  | 
  while read user password; do 
      useradd "$user" && 
         printf '%s\n%s\n' "$password" "$password" | passwd "$user"
  done

student_list.txt次のように仮定します。

foo
bar
baz

次のように見えますpasswords.txt

foo_passwd
bar_passwd
baz_passwd

貼り付けると次のように変わります。

foo foo_passw
bar bar_passw
baz baz_passw

read組み込み関数をペアで処理する方が簡単です。

もしそうなら、休憩は自明でなければなりません。 passwdパスワードが2回必要です(確認が必要)。

useraddスイッチもありますが、--passwordSTDINを使用する方が安全です。

adduseruseraddディストリビューションのユーザー ポリシーをよりよく満たすには、より良い方法があります。

関連情報