脚本建立用户并设置密码

时间:2024-03-25 14:39:57



#######脚本建立用户并设置密码#####

脚本生成过程



vim test1.sh  ##判断是否有两个参数
#!/bin/bash
while [ "$#" -ne "2" ]
        do
        echo "please give me a usernamefile and passwordfile!"
        exit 0
        done

vim test2.sh  ##判断两个文件的行数是否相等
#!/bin/bash
while [ `wc -l $1 | cut -d " " -f 1` -ne `wc -l $2 | cut -d " " -f 1` ]
        do
        echo  "$1's line is different from $2's line";
        exit 0
        done


vim test3.sh  ##建立用户并设置密码
#!/bin/bash
        for NUM in $( seq 1 `wc -l $1 | cut -d " " -f 1` )
        do
        NAME=`sed -n ${NUM}p $1`
        PASSWD=`sed -n ${NUM}p $2`
        `useradd $NAME `
        [ `echo $PASSWD | passwd --stdin $NAME` ]
        done


vim test4.sh  ##判断是否有两个文件并判断行数是否相等
#!/bin/bash
if [ "$#" != "2" ];                                                                          
then    echo "please give me a userfile and passwordfile!";
elif    [ `wc -l $1 | cut -d " " -f 1` !=  `wc -l $2 | cut -d " " -f 1` ];
then    echo "$1 is different from $2";
fi

脚本实现(判断脚本后面的文件是否为两个,判断两个文件行数是否相等,用用户文件和密码文件建立用户,用户存在是不做任何操作)
1.test6.sh $1 $2 实现建立用户并设置密码
2.当建立的用户存在时不做任何操作
3.当脚本所指定的文件个数少于两个是,输出 please give me a userfile and passwordfile!
4.当所给文件行数不一致时,输出echo "$1's line is different from $2's line";
vim test5.sh
#!/bin/bash
if [ "$#" != "2" ];                                                                             ##判断脚本后面的文件是否为两个, !=表示不等于
then    echo "please give me a userfile and passwordfile!";
elif    [ `wc -l $1 | cut -d " " -f 1` !=  `wc -l $2 | cut -d " " -f 1` ];      ##判断行数是否相等,wc -l计算 行数
then    echo "$1's line is different from $2's line";

else    for NUM in $( seq 1 `wc -l $1 | cut -d " " -f 1` )                  ##如果相等则执行此命令,将行数赋值给NUM
        do
        NAME=`sed -n ${NUM}p $1`                                              ##$1文件中的内容一次取一行赋给NAME
        PASSWD=`sed -n ${NUM}p $2`                                         ##$2文件中的内容一次取一行赋给PASSWD
        id $NAME &> /dev/null                                                       ##判断用户是否存在
        if [ "$?" != "0" ];                                                                   ##如果不存在,建立用户并设置密码
        then    `useradd $NAME `
                [ `echo $PASSWD | passwd --stdin $NAME` ] &> /dev/null;
        else echo " $NAME is exists! "                                          ##存在则输出该用户已存在
        fi
        done
fi

脚本建立用户并设置密码

判断脚本后面的文件是否为两个,判断两个文件行数是否相等

脚本建立用户并设置密码

用用户文件和密码文件建立用户,用户存在是不做任何操作,提示该用户已存在

脚本建立用户并设置密码

测试

登陆建立的新用户,验证用户名与密码是否对应,验证本来存在的用户信息没有改变(student用户的密码没有被改变)


脚本建立用户并设置密码