我如何编写一个脚本来为名为 的文件中的所有学生创建用户名/密码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
需要密码两次(需要确认)。
useradd
也有一个--password
开关,但使用 STDIN 应该更安全。
adduser
useradd
如果您想更好地满足发行版的用户策略,则可能会更好。