我需要创建一批用户

我需要创建一批用户

我曾经写过一些代码,可以让我根据包含用户名的文件创建一批用户。但最终代码从几行增加到了 50 行左右,于是我删除了它。一定有更好的方法,但我被难住了。

我的目标是编写一个 bash 脚本,该脚本可以创建多个用户,并设置密码和自定义 UID,并将其添加到组中。有人能给我展示一个可以执行此操作的脚本示例吗?

答案1

打开终端并输入:

sudo newusers /tmp/userlist.txt  

在 userlist.txt 文件中,每行应包含以下语法的用户数据:

username:password:User ID:Group ID:Comments:Userhome directory:User shell  

由于 userlist.txt 文件包含用户密码,因此在创建新用户后,不应将其以人类可读的形式存储。我的建议是将 userlist.txt 存储在使用强密码加密的文件中,然后在安全存储加密的 userlist.txt 文件后,从目录中删除原始 userlist.txt 文件,/tmp这样就没有人能够以纯文本形式读取用户密码。

有关newusers命令类型语法的更多信息:

man newusers  

在 GECOS 字段的手册结果中,newusers它也称为用户的注释字段。

检查/etc/passwd文件以查看是否创建了新用户。最简单的方法是使用以下命令仅显示用户名列表(这样可以减少不必要的信息):

cut -d: -f1 /etc/passwd  

答案2

你会需要普根生成随机密码的工具

创建一个文件(users.txt),其中用户名以 \n 分隔:

userA
userB
userC

编写一个从 stdin 读取的 bash 脚本:

while read user
do
  password=$(pwgen -N 1)
  sudo useradd $user -m -s /bin/bash 
  sudo passwd $user $password

  echo Created $user with password $password
done

最后,调用脚本:cat users.txt | /bin/bash my_script.sh

相关内容