为用户名创建脚本

为用户名创建脚本

我如何编写一个脚本来为名为 的文件中的所有学生创建用户名/密码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 应该更安全。

adduseruseradd如果您想更好地满足发行版的用户策略,则可能会更好。

相关内容