Linux AS4下测试例子: #cat namelistfile aa bb -bash-3.00[lg]# ./adduser.sh -f namelistfile Reading usernamelist file(namelistfile) ... namelistfile Now Let's set some options or you can use default settings. Would you like to add a new group to add these users to it? Enter (yes)to create a new group otherwise you must verify the group. Your Answer: yes Please enter the group's name: aa All these users will be added to group(aa)... Adding group ... The group(aa) is added! The passwd is used by default 000000. The user(aa) is added. Changing password for user aa. passwd: all authentication tokens updated successfully. The user(aa)'s password is setted! The passwd is used by default 000000. The user(bb) is added. Changing password for user bb. passwd: all authentication tokens updated successfully. The user(bb)'s password is setted! ==================================
if [ "`getUID`" -ne 0 ] then echo -e "\tYou are not root!" exit 0 fi } chkUID usagePRT(){ echo ${USAGE:='USAGE:' `basename Linux AS4下测试例子: #cat namelistfile aa bb -bash-3.00[lg]# ./adduser.sh -f namelistfile Reading usernamelist file(namelistfile) ... namelistfile Now Let's set some options or you can use default settings. Would you like to add a new group to add these users to it? Enter (yes)to create a new group otherwise you must verify the group. Your Answer: yes Please enter the group's name: aa All these users will be added to group(aa)... Adding group ... The group(aa) is added! The passwd is used by default 000000. The user(aa) is added. Changing password for user aa. passwd: all authentication tokens updated successfully. The user(aa)'s password is setted! The passwd is used by default 000000. The user(bb) is added. Changing password for user bb. passwd: all authentication tokens updated successfully. The user(bb)'s password is setted! ==================================
if [ "`getUID`" -ne 0 ] then echo -e "\tYou are not root!" exit 0 fi } chkUID usagePRT(){ echo ${USAGE:='USAGE:' `basename ` '-f namelistfile'} } chkFILE(){ echo if [ ! "`awk 'NF!=2{print NF;exit;}' `" ] && [ "`awk 'NF!=2{print NF;exit;}' `" -ne 2 ] ; then echo -e "The file's format is not right!" exit 0 fi }
userCHK(){ for USER in `awk '{print ;}' ` do if grep -wq $USER /etc/passwd ; then echo -e "The user($USER) has been added!" exit 1 fi if echo $USER|grep -wq "^[0-9].*" ; then echo -e "The user($USER)'s name is wrong format!" exit 1 fi done }
setOPT(){ echo -e "Now Let's set some options or you can use default settings." setGRPNAME(){ while : do echo -e "Would you like to add a new group to add these users to it?" echo -e "Enter (yes)to create a new group otherwise you must verify the group." printf "Your Answer: " read grpopt case $grpopt in yes) printf "Please enter the group's name: " read grpoptnew if cat /etc/group|sed 's/:.*//'|grep -wq $grpoptnew ; then echo "The group's name($grpoptnew) exist." exit else grpname=$grpoptnew echo -e "All these users will be added to group($grpname)..." echo -e "Adding group ..." if cp /etc/group /etc/group.$$ ; then if groupadd $grpname ; then echo -e "The group($grpname) is added!" rm -f /etc/group.$$ break 1 else echo -e "There's something wrong when adding the group($grpname)." echo -e " *** Please recovered the group file. *** " echo -e "You can cp /etc/group.$$ to /etc/group to recover." fi else echo "Error! Please check the program or your disk space." exit 0 fi fi ;; *) : ;; esac done } setGRPNAME }
addUSER(){ if cp /etc/passwd /etc/passwd.$$ && cp /etc/shadow /etc/shadow.$$ ; then
for user in `sed 's/ .*//' ` do pass=`awk '{ ~/$name/ {print ;exit} } name=$user' ` if [ -z "$pass" ] ; then echo -e "The passwd is used by default 000000." pass=000000 fi if [ ${#pass} -lt 6 ] ; then echo -e "The user($user)'s password is too short!" echo -e "Use default password: 000000." pass=000000 fi if useradd $user -g $grpname ; then echo -e "The user($user) is added." if echo $pass|passwd $user --stdin ; then echo -e "The user($user)'s password is setted!" else echo -e "The user($user)'s password is NOT set!" fi else echo -e "The user($user) is NOT add." fi done rm -f /etc/passwd.$$ /etc/shadow.$$ else echo -e "There something wrong when backup the passwd and shadow file." fi }
if [ $# -ne 2 ] ; then usagePRT exit 0 fi
case "" in -f) if [ -f "" ] ; then echo -e "Reading usernamelist file""("")" "..." chkFILE userCHK setOPT addUSER else echo -e "There's no usernamelist file!" fi ;; *) usagePRT exit 0 ;; esac ` '-f namelistfile'} } chkFILE(){ echo if [ ! "`awk 'NF!=2{print NF;exit;}' `" ] && [ "`awk 'NF!=2{print NF;exit;}' `" -ne 2 ] ; then echo -e "The file's format is not right!" exit 0 fi }
userCHK(){ for USER in `awk '{print ;}' ` do if grep -wq $USER /etc/passwd ; then echo -e "The user($USER) has been added!" exit 1 fi if echo $USER|grep -wq "^[0-9].*" ; then echo -e "The user($USER)'s name is wrong format!" exit 1 fi done }
setOPT(){ echo -e "Now Let's set some options or you can use default settings." setGRPNAME(){ while : do echo -e "Would you like to add a new group to add these users to it?" echo -e "Enter (yes)to create a new group otherwise you must verify the group." printf "Your Answer: " read grpopt case $grpopt in yes) printf "Please enter the group's name: " read grpoptnew if cat /etc/group|sed 's/:.*//'|grep -wq $grpoptnew ; then echo "The group's name($grpoptnew) exist." exit else grpname=$grpoptnew echo -e "All these users will be added to group($grpname)..." echo -e "Adding group ..." if cp /etc/group /etc/group.$$ ; then if groupadd $grpname ; then echo -e "The group($grpname) is added!" rm -f /etc/group.$$ break 1 else echo -e "There's something wrong when adding the group($grpname)." echo -e " *** Please recovered the group file. *** " echo -e "You can cp /etc/group.$$ to /etc/group to recover." fi else echo "Error! Please check the program or your disk space." exit 0 fi fi ;; *) : ;; esac done } setGRPNAME }
addUSER(){ if cp /etc/passwd /etc/passwd.$$ && cp /etc/shadow /etc/shadow.$$ ; then
for user in `sed 's/ .*//' ` do pass=`awk '{ ~/$name/ {print ;exit} } name=$user' ` if [ -z "$pass" ] ; then echo -e "The passwd is used by default 000000." pass=000000 fi if [ ${#pass} -lt 6 ] ; then echo -e "The user($user)'s password is too short!" echo -e "Use default password: 000000." pass=000000 fi if useradd $user -g $grpname ; then echo -e "The user($user) is added." if echo $pass|passwd $user --stdin ; then echo -e "The user($user)'s password is setted!" else echo -e "The user($user)'s password is NOT set!" fi else echo -e "The user($user) is NOT add." fi done rm -f /etc/passwd.$$ /etc/shadow.$$ else echo -e "There something wrong when backup the passwd and shadow file." fi }
if [ $# -ne 2 ] ; then usagePRT exit 0 fi
case "" in -f) if [ -f "" ] ; then echo -e "Reading usernamelist file""("")" "..." chkFILE userCHK setOPT addUSER else echo -e "There's no usernamelist file!" fi ;; *) usagePRT exit 0 ;; esac