通过读取用户和密码文件自动创建用户脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过读取用户和密码文件自动创建用户脚本相关的知识,希望对你有一定的参考价值。

 用户文件/mnt/username     密码文件/mnt/passwdfile

Username文件中每一行代表一个用户,passwdfile中每行对应username中一个密码

通过读取取两个文件,自动创建用户

 

 

#!/bin/bash                    

if [ -z /mnt/username ]                            //判断username是否存在          

          then  echo ERROR:/mnt/username is not exits

elif [ -z /mnt/passwdfile ]                      //判断passwdfile是否存在

          then  echo ERROR:/mnt/passwdfile is not exits

 else          usernameline=`wc -l /mnt/username | cut -d " " -f 1`  //统计行数

              passwdfileline=`wc -l /mnt/passwdfile | cut -d " " -f 1`

   if [ "$usernameline" = "0" -o "$passwdfileline" = "0" ]; //如果有任意一个文件行数为0则无法正常创建用户

          then  echo username or passwdfile  is  empty

   elif [ "$usernameline" != "$passwdfileline" ];              //如果都不为空,则判断两个文件行数是否相等,如果不相等也不能创建用户

          then echo usernameline and passwdfileline is not equal

   else [ "$usernameline" = "$passwdfileline" ];    //如果行数相等,则依次提取每一行

        for NUM in $( seq 1 $usernameline )

          do      

            USERNAME=`sed -n ${NUM}p /mnt/username`       //username的每一行作为USERNAMN

            PASSWD=`sed -n ${NUM}p /mnt/passwdfile`       //passwdfile的每一行作为对应密码

            USERADD=`useradd $USERNAME &> /dev/null && echo "success"||echo "failed"`                                 //创建用户成功则输出success 否则failed

     if [ "$USERADD" = "success" ];    //如果输出success,说明创建用户成功,则为其添加密码

           then echo $PASSWD | passwd --stdin $USERNAME

                  echo $USERNAME create successfully

     elif [ "$USERADD" = "failed" ];

              then  echo $USERNAME already exits       //否则提示该用户已经存在。

    fi

    done

 fi

fi 


本文出自 “12444546” 博客,谢绝转载!

以上是关于通过读取用户和密码文件自动创建用户脚本的主要内容,如果未能解决你的问题,请参考以下文章

linux如何通过脚本来修改用户的密码?脚本自动化修改用户密码?

批量创建用户名

用于自动填写由 Angular 创建的用户密码表单的内容脚本 [重复]

自动化创建用户脚本

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

07_编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默认的 123456 作为默认密码。