一、批量创建用户
1、参考网址
# https://blog.csdn/qq_41833774/article/details/79716271
# https://blog.csdn/FangXiaXin/article/details/80057527
2、代码及注释:
# (1)指定密码:
# 法一:用户名无规律,并存放于文本
#!/bin/bash
ULIST=$(cat /root/user.txt) ## /root/user.txt里存放用户名,一个用户名为一行
for UNAME in $ULIST ## 可写成 for user in `cat /root/user.txt`
do
useradd $UNAME # 添加指定user
echo "123456" | passwd --stdin $UNAME # 设置密码
done
# 执行 chpasswd 命令,以 root 的身份执行 /usr/sbin/chpasswd,
# chpasswd 将经过 /usr/sbin/chpasswd 命令编译过的密码写入 /etc/passwd 的密码栏
chpasswd < /root/passwd
# 确定密码写入 /etc/passwd 的密码栏后,
# 执行命令 /usr/sbin/pwconv 命令将密码编译为 shadow password,并将结果写入/etc/shadow
pwconv
cat /root/passwd
# 法二:用户名前缀有相同之处
#!/bin/bash
PREFIX="stu"
i=1
while [$i -le 20]
do
useradd ${PREFIX}$i
echo "123456" | passwd --stdin ${PREFIX}$i &> /dev/null
let i++
done
# (2)随机密码,不保存:
# 法一:
#!/bin/bash
for user in test{01..10}
do
useradd $user
echo `date + %s%N` | md5sum | egrep '.{8}' -o | passwd --stdin $user
done
# 法二:
#!/bin/bash
i=1
while [$i -le 10]
do
useradd -r test$i
echo `date + %s%N` | md5sum | egrep '.{8}' -o | passwd --stdin test$i
let i++
done
# (3)随机密码,并保存:
#!/bin/bash
for u in la{01..10} ## {01..10} 即为 `seq -w 00 10`
do
useradd $u &> /dev/null
if [$? -eq 0] ## 上一条命令的返回值(显示最后命令的退出状态,0表示无错误,其它值表示有错误)
then
echo "add user is ok"
p=`uuidgen`
echo $p | passwd --stdin $u &> /dev/null
echo "$u:$p" >> /tmp/userlist
else
echo "add user is error"
fi
done
- 备注:
- 若是批量删除用户,则将 useradd 改为 userdel
- passwd 默认用终端作为标准输入,加上 --stdin 表示可以用任意文件做标准输入,此处用管道作为标准输入
ps:之前总结的
更多推荐
shell脚本编程学习(一)之批量创建用户(含密码设置)
发布评论