linux批量新增使用者指令碼

wang_0720發表於2013-11-05
#!/bin/bash
#add users
for name in `cat /usr/local/shfile/name_pwd.txt|cut -d " " -f 1`;do
#從檔案中獲取密碼
       pswd=`cat /usr/local/shfile/name_pwd.txt|awk -v name="${name}" '{if($1 == name) print$2}'`
       home=`cat /usr/local/shfile/name_pwd.txt|awk -v name="${name}" '{if($1 == name) print$3}'`
        if [ ! -d $( dirname ${home} ) ];then
            mkdir -p $( dirname ${home} )
        fi
#判斷使用者名稱和密碼是否為空,有一為空就退出迴圈
        if [ -n "${name}" ]&&[ -n "${pswd}" ];then
#判斷使用者是否已經存在,存在的話就不新增
               cat /etc/passwd|grep "^${name}">/dev/null
                if [ $? -ne 0 ];then
#新增使用者
                        useradd -d ${home} ${name}
#判斷密碼長度是否足夠,小於6位的密碼為不合法的
                        pswd_len=`echo ${#pswd}`
                        if [ "${pswd_len}" -lt 6 ];then
                                echo "password ${pswd} is too short"
                        else
#給新新增的使用者修改密碼
                                echo ${pswd}|passwd --stdin ${name}
                        fi
                else
#提示當前使用者已存在
                        echo "${name} is exist"
                fi
        fi
done
#End of file
使用者_密碼檔案
[root@192 shfile]# cat name_pwd.txt
etnet1 etnet123 /home/etnet1
etnet2 etnet234 /home/etnet2
etnet3 etnet345 /home/etnet3

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27181165/viewspace-775751/,如需轉載,請註明出處,否則將追究法律責任。

相關文章