v_delete_user 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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. restart=$2
  13. # Includes
  14. source $VESTA/conf/vesta.conf
  15. source $VESTA/func/main.sh
  16. source $VESTA/func/domain.sh
  17. source $VESTA/func/db.sh
  18. source $VESTA/func/ip.sh
  19. #----------------------------------------------------------#
  20. # Verifications #
  21. #----------------------------------------------------------#
  22. check_args '1' "$#" 'user'
  23. validate_format 'user'
  24. is_object_valid 'user' 'USER' "$user"
  25. is_object_unsuspended 'user' 'USER' "$user"
  26. if [ "$user" = 'admin' ]; then
  27. exit
  28. fi
  29. #----------------------------------------------------------#
  30. # Action #
  31. #----------------------------------------------------------#
  32. # Checking web system is enabled
  33. if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
  34. $BIN/v_unsuspend_web_domains $user $restart
  35. $BIN/v_delete_web_domains $user $restart
  36. rv="$?"
  37. if [ "$rv" -ne '0' ]; then
  38. exit $rv
  39. fi
  40. fi
  41. # Checking dns system is enabled
  42. if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
  43. $BIN/v_unsuspend_dns_domains $user $restart
  44. $BIN/v_delete_dns_domains $user $restart
  45. rv="$?"
  46. if [ "$rv" -ne '0' ]; then
  47. exit $rv
  48. fi
  49. fi
  50. # Checking mail system is enabled
  51. if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
  52. $BIN/v_unsuspend_mail_domains $user
  53. $BIN/v_delete_mail_domains $user
  54. rv="$?"
  55. if [ "$rv" -ne '0' ]; then
  56. exit $rv
  57. fi
  58. fi
  59. # Checking db system is enabled
  60. if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
  61. $BIN/v_unsuspend_databases $user
  62. $BIN/v_delete_databases $user
  63. rv="$?"
  64. if [ "$rv" -ne '0' ]; then
  65. exit $rv
  66. fi
  67. fi
  68. # Checking ip
  69. $BIN/v_delete_user_ips "$user"
  70. rv="$?"
  71. if [ "$rv" -ne '0' ]; then
  72. exit $rv
  73. fi
  74. # Deleteing user pipes
  75. sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe
  76. sed -i "/ $user$/d" $VESTA/data/queue/traffic.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_history "deleted system user $user" '' 'admin'
  92. log_event "$OK" "$EVENT"
  93. exit