我曾经写过一些代码,可以让我根据包含用户名的文件创建一批用户。但最终代码从几行增加到了 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