📄 newuser.sh
字号:
#!/bin/bashaddgrp(){ echo `date` : add new group >> $LOGFILE newgrps=`awk '{print $2}' $USRFILE | sed 's/,/\n/g' | sort | uniq` for f in $newgrps do `groupadd $f 2>> $LOGFILE ` done return 0}addusr(){ mkdir -p $3 2>>$LOGFILE useradd $1 -g $2 -d $3 -G $4 2>>$LOGFILE return $?} addpw(){ echo `echo $2 | passwd $1 --stdin ` >> $LOGFILE return $?}USRFILE="user.list" PWFILE="passwd.list"LOGFILE="/var/log/messages"LOCKFILE="/var/log/file.lock"# add lock if [ -f "$LOCKFILE" ]then pid=`cat $LOCKFILE` pstree -p | grep $pid >/dev/null [ $? = 0 ] && echo "script is running..." && exit 1fi echo $$ > "$LOCKFILE"# accept argumentwhile [[ $# > 1 ]]do case $1 in -u | -U) shift [ -f "$1" ] && USRFILE="$1" ;; -p | -P) shift [ -f "$1" ] && PWFILE="$1" ;; * ) shift;; esacdoneUSRNM=""USRGRPS=""USRGRP=""USRHM=""USRPW=""USRCNT=0PWCNT=0USRINDX=1USRCNT=`wc -l $USRFILE | awk '{print $1}'`PWCNT=`wc -l $PWFILE | awk '{print $1}'`# check user count should equlas passwd count.if [ "$USRCNT" -ne "$PWCNT" ]then echo "exit because: user count is not equal passwd count " rm -f $LOCKFILE exit 1fi# add new groupaddgrp# add user and passwordfor (( USRINDX=1; USRINDX <= USRCNT; USRINDX++ ))do line=`tail +$USRINDX $USRFILE | head -n 1` pw=`tail +$USRINDX $PWFILE | head -n 1` USRNM=`echo $line | awk '{ print $1}'` USRGRPS=`echo $line | awk '{print $2}'` USRHM=`echo $line | awk '{print $3}'` USRGRP=${USRGRPS%%,*} addusr $USRNM $USRGRP $USRHM $USRGRPS addpw $USRNM $pw doneunset USRINDX USRFILE PWFILE LOGFILE LOCKFILE USRNMunset USRGRPS USRHM USRGRP USRCNT PWCNT# unlock rm -f $LOCKFILEexit $?
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -