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
スイッチもありますが、--password
STDINを使用する方が安全です。
adduser
useradd
ディストリビューションのユーザー ポリシーをよりよく満たすには、より良い方法があります。