v_delete_user 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #!/bin/bash
  2. # info: deliting system user
  3. #----------------------------------------------------------#
  4. # Variable&Function #
  5. #----------------------------------------------------------#
  6. # Argument defenition
  7. user=$1
  8. # Importing variables
  9. source $VESTA/conf/vars.conf
  10. source $V_CONF/vesta.conf
  11. source $V_FUNC/shared.func
  12. source $V_FUNC/domain.func
  13. source $V_FUNC/db.func
  14. source $V_FUNC/ip.func
  15. #----------------------------------------------------------#
  16. # Verifications #
  17. #----------------------------------------------------------#
  18. # Checking arg number
  19. check_args '1' "$#" 'user'
  20. # Checking argument format
  21. format_validation 'user'
  22. # Checking user
  23. is_user_valid
  24. # Checking user is active
  25. is_user_suspended
  26. # Checking user vesta
  27. if [ "$user" = 'vesta' ]; then
  28. exit
  29. fi
  30. #----------------------------------------------------------#
  31. # Action #
  32. #----------------------------------------------------------#
  33. # Checking web system is enabled
  34. if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
  35. $V_BIN/v_unsuspend_web_domains $user
  36. $V_BIN/v_delete_web_domains $user
  37. rv="$?"
  38. if [ "$rv" -ne '0' ]; then
  39. exit $rv
  40. fi
  41. fi
  42. # Checking dns system is enabled
  43. if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
  44. $V_BIN/v_unsuspend_dns_domains $user
  45. $V_BIN/v_delete_dns_domains $user
  46. rv="$?"
  47. if [ "$rv" -ne '0' ]; then
  48. exit $rv
  49. fi
  50. fi
  51. # Checking mail system is enabled
  52. if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
  53. $V_BIN/v_unsuspend_mail_domains $user
  54. $V_BIN/v_del_mail_domains $user
  55. rv="$?"
  56. if [ "$rv" -ne '0' ]; then
  57. exit $rv
  58. fi
  59. fi
  60. # Checking db system is enabled
  61. if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
  62. $V_BIN/v_unsuspend_db_bases $user
  63. $V_BIN/v_delete_db_dbases $user
  64. rv="$?"
  65. if [ "$rv" -ne '0' ]; then
  66. exit $rv
  67. fi
  68. fi
  69. # Checking ip
  70. $V_BIN/v_delete_user_ips "$user"
  71. rv="$?"
  72. if [ "$rv" -ne '0' ]; then
  73. exit $rv
  74. fi
  75. # Deleteing user pipes
  76. diskp=$(grep -n " $user$" $V_QUEUE/disk.pipe|cut -d : -f 1|sort -n -r)
  77. trafp=$(grep -n " $user$" $V_QUEUE/traffic.pipe|cut -d : -f 1|sort -n -r)
  78. statp=$(grep -n "/$user/" $V_QUEUE/stats.pipe|cut -d : -f 1|sort -n -r)
  79. if [ ! -z "$diskp" ]; then
  80. for str in $diskp; do
  81. sed -i "$str d" $V_QUEUE/disk.pipe
  82. done
  83. fi
  84. if [ ! -z "$trafp" ]; then
  85. for str in $trafp; do
  86. sed -i "$str d" $V_QUEUE/traffic.pipe
  87. done
  88. fi
  89. if [ ! -z "$statp" ]; then
  90. for str in $statp; do
  91. sed -i "$str d" $V_QUEUE/stats.pipe
  92. done
  93. fi
  94. # Removing system user
  95. userdel -f $user
  96. rm -rf $V_HOME/$user
  97. rm -f /var/spool/mail/$user
  98. rm -f /var/spool/cron/$user
  99. rm -rf $V_USERS/$user
  100. #----------------------------------------------------------#
  101. # Vesta #
  102. #----------------------------------------------------------#
  103. # Logging
  104. log_event 'system' "$V_EVENT"
  105. exit