v_delete_user 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. # Importing variables
  13. source $VESTA/conf/vesta.conf
  14. source $VESTA/func/shared.sh
  15. source $VESTA/func/domain.sh
  16. source $VESTA/func/db.sh
  17. source $VESTA/func/ip.sh
  18. #----------------------------------------------------------#
  19. # Verifications #
  20. #----------------------------------------------------------#
  21. # Checking arg number
  22. check_args '1' "$#" 'user'
  23. # Checking argument format
  24. validate_format 'user'
  25. # Checking user
  26. is_object_valid 'user' 'USER' "$user"
  27. # Checking user is active
  28. is_object_unsuspended 'user' 'USER' "$user"
  29. # Checking user admin
  30. if [ "$user" = 'admin' ]; then
  31. exit
  32. fi
  33. #----------------------------------------------------------#
  34. # Action #
  35. #----------------------------------------------------------#
  36. # Checking web system is enabled
  37. if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
  38. $BIN/v_unsuspend_web_domains $user
  39. $BIN/v_delete_web_domains $user
  40. rv="$?"
  41. if [ "$rv" -ne '0' ]; then
  42. exit $rv
  43. fi
  44. fi
  45. # Checking dns system is enabled
  46. if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
  47. $BIN/v_unsuspend_dns_domains $user
  48. $BIN/v_delete_dns_domains $user
  49. rv="$?"
  50. if [ "$rv" -ne '0' ]; then
  51. exit $rv
  52. fi
  53. fi
  54. # Checking mail system is enabled
  55. if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
  56. $BIN/v_unsuspend_mail_domains $user
  57. $BIN/v_del_mail_domains $user
  58. rv="$?"
  59. if [ "$rv" -ne '0' ]; then
  60. exit $rv
  61. fi
  62. fi
  63. # Checking db system is enabled
  64. if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
  65. $BIN/v_unsuspend_db_bases $user
  66. $BIN/v_delete_db_dbases $user
  67. rv="$?"
  68. if [ "$rv" -ne '0' ]; then
  69. exit $rv
  70. fi
  71. fi
  72. # Checking ip
  73. $BIN/v_delete_user_ips "$user"
  74. rv="$?"
  75. if [ "$rv" -ne '0' ]; then
  76. exit $rv
  77. fi
  78. # Deleteing user pipes
  79. sed -i "/v_update_db_bases_disk $user$/d" $VESTA/data/queue/disk.pipe
  80. sed -i "/v_update_web_domains_traff $user$/d" $VESTA/data/queue/traffic.pipe
  81. sed -i "/v_update_web_domain_stat $user /d" $VESTA/data/queue/stats.pipe
  82. # Removing system user
  83. /usr/sbin/userdel -f $user
  84. rm -rf $HOMEDIR/$user
  85. rm -f /var/spool/mail/$user
  86. rm -f /var/spool/cron/$user
  87. rm -rf $USER_DATA
  88. # Updating admin counter
  89. if [ "$user" != 'admin' ]; then
  90. decrease_user_value 'admin' '$U_USERS'
  91. fi
  92. #----------------------------------------------------------#
  93. # Vesta #
  94. #----------------------------------------------------------#
  95. # Logging
  96. log_event "$OK" "$EVENT"
  97. exit