v_delete_user 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #!/bin/bash
  2. # info: delete user
  3. # options: user
  4. #
  5. # This function deletes a certain user and all his resourses such as domains,
  6. # databases, cron jobs, etc.
  7. #----------------------------------------------------------#
  8. # Variable&Function #
  9. #----------------------------------------------------------#
  10. # Argument defenition
  11. user=$1
  12. # Includes
  13. source $VESTA/conf/vesta.conf
  14. source $VESTA/func/main.sh
  15. source $VESTA/func/domain.sh
  16. source $VESTA/func/db.sh
  17. source $VESTA/func/ip.sh
  18. #----------------------------------------------------------#
  19. # Verifications #
  20. #----------------------------------------------------------#
  21. check_args '1' "$#" 'user'
  22. validate_format 'user'
  23. is_object_valid 'user' 'USER' "$user"
  24. is_object_unsuspended 'user' 'USER' "$user"
  25. if [ "$user" = 'admin' ]; then
  26. exit
  27. fi
  28. #----------------------------------------------------------#
  29. # Action #
  30. #----------------------------------------------------------#
  31. # Checking web system is enabled
  32. if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
  33. $BIN/v_unsuspend_web_domains $user
  34. $BIN/v_delete_web_domains $user
  35. rv="$?"
  36. if [ "$rv" -ne '0' ]; then
  37. exit $rv
  38. fi
  39. fi
  40. # Checking dns system is enabled
  41. if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
  42. $BIN/v_unsuspend_dns_domains $user
  43. $BIN/v_delete_dns_domains $user
  44. rv="$?"
  45. if [ "$rv" -ne '0' ]; then
  46. exit $rv
  47. fi
  48. fi
  49. # Checking mail system is enabled
  50. if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
  51. $BIN/v_unsuspend_mail_domains $user
  52. #$BIN/v_delete_mail_domains $user
  53. rv="$?"
  54. if [ "$rv" -ne '0' ]; then
  55. exit $rv
  56. fi
  57. fi
  58. # Checking db system is enabled
  59. if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
  60. $BIN/v_unsuspend_databases $user
  61. $BIN/v_delete_databases $user
  62. rv="$?"
  63. if [ "$rv" -ne '0' ]; then
  64. exit $rv
  65. fi
  66. fi
  67. # Checking ip
  68. $BIN/v_delete_user_ips "$user"
  69. rv="$?"
  70. if [ "$rv" -ne '0' ]; then
  71. exit $rv
  72. fi
  73. # Deleteing user pipes
  74. sed -i "/v_update_db_bases_disk $user$/d" $VESTA/data/queue/disk.pipe
  75. sed -i "/v_update_web_domains_traff $user$/d" $VESTA/data/queue/traffic.pipe
  76. sed -i "/v_update_web_domain_stat $user /d" $VESTA/data/queue/stats.pipe
  77. # Removing system user
  78. /usr/sbin/userdel -f $user
  79. rm -rf $HOMEDIR/$user
  80. rm -f /var/spool/mail/$user
  81. rm -f /var/spool/cron/$user
  82. rm -rf $USER_DATA
  83. # Updating admin counter
  84. if [ "$user" != 'admin' ]; then
  85. decrease_user_value 'admin' '$U_USERS'
  86. fi
  87. #----------------------------------------------------------#
  88. # Vesta #
  89. #----------------------------------------------------------#
  90. # Logging
  91. log_event "$OK" "$EVENT"
  92. exit