Linux批量 添加/删除 用户脚本


说明蓝色=命令名称

      浅绿=命令参数

      浅蓝=选项

      紫色=目录

      系统环境:CentOS  6.2  i686

 添加脚本:

  1. #!/bin/bash  
  2.  
  3. PWD=users.txt  
  4. PASSWD=123456  
  5.  
  6. while getopts "d:p:h" opt  
  7. do  
  8. case $opt in 
  9. h)   
  10. cat << EOF  
  11. Useing Option:  
  12. -d a txt for users,default ./users.txt  
  13. -p users passworddefault 123456  
  14. -h help infomation  
  15. EOF  
  16. exit;   
  17. ;;  
  18. d)  
  19. PWD=$OPTARG  
  20. ;;  
  21. p)  
  22. PASSWD=$OPTARG  
  23. ;;  
  24. *)  
  25. echo "Unkonw argument! Please use -h for help." 
  26. exit;  
  27. esac   
  28. done  
  29.  
  30. if test -f "$PWD" 
  31. then 
  32. for i in `cat $PWD`  
  33. do  
  34. USER=`awk -F ":" '{if($1~/peixun_'"$i"'/) print $1}' /etc/passwd`  
  35. #if ["$USER" != "peixun_$1"];  
  36. #echo "`awk -F ":" '{if($1~/peixun_'"$i"'/) print $1}' /etc/passwd`" 
  37. if test -z "`awk -F ":" '{if($1~/peixun_'"$i"'/) print $1}' /etc/passwd`" 
  38. then   
  39. useradd -m peixun_$i  
  40. echo "$PASSWD"|passwd --stdin peixun_$i &> /dev/null  
  41. echo "USER:peixun_$i PASSWD:$PASSWD" 
  42. echo "`date +"%Y-%m-%D %H%M%S"` USER:peixun_$i PASSWD:$PASSWD" >> /var/log/adduser.log  
  43. else   
  44. echo "User peixun_$i is exists" 
  45. fi  
  46. done  
  47. else 
  48. echo "not found $PWD" 
  49. exit;  
  50. fi 

删除脚本:

  1. #!/bin/bash  
  2.  
  3. del_users_only(){   
  4. for i in $USERS  
  5. do  
  6. userdel $i  
  7. echo "USER:$i" 
  8. echo "`date +'%Y-%m-%d %H:%M:%S'` USER:$i" >> /var/log/deluser.log  
  9. done  
  10. }  
  11.  
  12. del_users_home(){   
  13. for i in $USERS  
  14. do  
  15. HOME=`awk -F ":" '{ if($1~/test/) print $6}' /etc/passwd`  
  16. userdel -r $i  
  17. echo "USER:$i del HOME:$HOME"   
  18. echo "`date +'%Y-%m-%d %H:%M:%S'` USER:$i del HOME:$HOME" >> /var/log/deluser.log  
  19. done  
  20. }  
  21.  
  22. select_y_n_2(){  
  23. echo "Do you want to del HOME?(y/n)" 
  24. read yn2  
  25. case $yn2 in 
  26. n|N)  
  27. del_users_only;  
  28. ;;   
  29. y|Y)   
  30. del_users_home;  
  31. ;;   
  32. *)   
  33. echo "Please enter y or n" 
  34. select_y_n_2;  
  35. esac   
  36. }  
  37.  
  38. select_y_n_1(){  
  39. echo "del USERS:$USERS" 
  40. echo "Do you want to del USERS?(y/n)" 
  41. read yn1  
  42. case $yn1 in 
  43. n|N)  
  44. exit;  
  45. ;;  
  46. ""|y|Y)   
  47. select_y_n_2;  
  48. ;;  
  49. *)  
  50. echo "Please enter y or n" 
  51. select_y_n_1;  
  52. esac  
  53. }  
  54.  
  55. if test -z "$1" ||[ "$1" = "-" ]||[ "${1:0:1}" != "-" ]  
  56. then 
  57. echo "Unkonw argument! Please use -h for help." 
  58. exit;  
  59. else 
  60. while getopts "u:h" opt  
  61. do  
  62. case $opt in 
  63. ""|h)  
  64. cat << EOF  
  65. Useing Option:  
  66. -u keywork for users  
  67. -h help infomation  
  68. EOF  
  69. exit;  
  70. ;;  
  71. u)  
  72. WORD=$OPTARG  
  73. ;;  
  74. ?)  
  75. echo "Unkonw argument! Please use -h for help." 
  76. exit;  
  77. esac  
  78. done  
  79.  
  80. USERS=`awk -F ":" '$3>=500&&$1~/'"$WORD"'/ {print $1}' /etc/passwd`   
  81.  
  82. if test -z "$USERS" 
  83. then 
  84. echo "Users are not found!" 
  85. exit;  
  86. else 
  87. select_y_n_1  
  88. fi  
  89. fi 

相关内容