用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脚本实现批量创建用户并修改密码

(转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加

Shell脚本批量创建用户并随机生成密码

用shell脚本批量创建30个用户,用户名为exam1~exam30,用户密码统一为gdlclinux。

shell脚本案例批量创建用户

案例九:shell脚本自动创建多个新用户,并设置密码