用shell脚本实现批量创建用户并修改密码
Posted Tuki_a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用shell脚本实现批量创建用户并修改密码相关的知识,希望对你有一定的参考价值。
要求
已有一个文件userlist,里面有三个用户名,执行脚本时建立这三个用户,并提示成功建立,
还有密码文件passlist,里面有三个密码,分别对应上面的三个用户,分别改密码,并提示成功。
代码
#!/bin/bash
#权限检查,只有root用户才可以创建用户
[ "$USER" != "root" ] && {
echo -e "\\033[31mERROR: permission deny !!\\033[0m"
exit
}
#文件不能为空
[ -z $1 ] && {
echo -e "\\033[31mERROR: Pleaase input usernamefile following script !!\\033[0m"
exit
}
[ -z $2 ] && {
echo -e "\\033[31mERROR: Pleaase input passwordfile following script !!\\033[0m"
exit
}
#文件存在检查
[ -e $1 ] || {
echo -e "\\033[31mERROR: usernamefile not exist !!\\033[0m"
exit
}
[ -e $2 ] || {
echo -e "\\033[31mERROR: passwordfile not exist !!\\033[0m"
exit
}
#两个文件行数要一致,sed -n $=计算行数
while [ `sed -n $= $1` != `sed -n $= $2` ]
do
echo -e "\\033[31mERROR: 文件行数不一致 !!\\033[0m"
exit
done
#x是用来记录到第几行也就是第几个用户的
export x
x=0
for i in `cat $1`
do
#先检查用户是不是存在
id $i &> /dev/null && {
echo $i已经存在!
}||{
#用户不存在则创建,提示消息都放进垃圾桶
useradd $i &> /dev/null && {
echo 添加$i成功!
x=$[x+=1]
#显示passwd第x行的内容,然后更改密码
echo `sed -n ${x}p $2` | passwd --stdin $i &> /dev/null && {
echo $i密码修改成功
}||{
echo 密码修改失败
}
}||{
echo 用户添加失败!
}
}
done
执行效果
可以看到会做异常检测,并且执行成功,成功创建用户
以上是关于用shell脚本实现批量创建用户并修改密码的主要内容,如果未能解决你的问题,请参考以下文章
(转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加