v-delete-user 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #!/bin/bash
  2. # info: delete user
  3. # options: USER
  4. #
  5. # This function deletes a certain user and all his resources such as domains,
  6. # databases, cron jobs, etc.
  7. #----------------------------------------------------------#
  8. # Variable&Function #
  9. #----------------------------------------------------------#
  10. # Argument definition
  11. user=$1
  12. restart=$2
  13. # Includes
  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. source $VESTA/conf/vesta.conf
  19. #----------------------------------------------------------#
  20. # Verifications #
  21. #----------------------------------------------------------#
  22. check_args '1' "$#" 'USER'
  23. is_format_valid '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. # Deleting web domains
  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. check_result "$?" "web domain deletion failed"
  37. fi
  38. # Deleting dns domains
  39. if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
  40. $BIN/v-unsuspend-dns-domains $user $restart
  41. $BIN/v-delete-dns-domains $user $restart
  42. check_result "$?" "dns domain deletion failed"
  43. fi
  44. # Deleting mail domains
  45. if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
  46. $BIN/v-unsuspend-mail-domains $user
  47. $BIN/v-delete-mail-domains $user
  48. check_result "$?" "mail domain deletion failed"
  49. fi
  50. # Deleting databases
  51. if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
  52. $BIN/v-unsuspend-databases $user
  53. $BIN/v-delete-databases $user
  54. check_result "$?" "database deletion failed"
  55. fi
  56. # Releasing user ips
  57. $BIN/v-delete-user-ips "$user"
  58. check_result "$?" "user ip release failed"
  59. # Deleteing user pipes
  60. sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe
  61. sed -i "/ $user$/d" $VESTA/data/queue/traffic.pipe
  62. # Deleting sftp jail
  63. if [ ! -z "$SFTPJAIL_KEY" ]; then
  64. $BIN/v-delete-user-sftp-jail $user
  65. fi
  66. # Deleting system user
  67. /usr/sbin/userdel -f $user >> /dev/null 2>&1
  68. if [ $? -ne 0 ]; then
  69. sed -i "/^$user:/d" /etc/passwd
  70. sed -i "/^$user:/d" /etc/shadow
  71. fi
  72. /usr/sbin/groupdel $user >> /dev/null 2>&1
  73. if [ $? -ne 0 ]; then
  74. sed -i "/^$user:/d" /etc/group
  75. fi
  76. # Deleting user directories
  77. chattr -i $HOMEDIR/$user/conf
  78. rm -rf $HOMEDIR/$user
  79. rm -f /var/spool/mail/$user
  80. rm -f /var/spool/cron/$user
  81. rm -f /var/spool/cron/crontabs/$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" "$ARGUMENTS"
  93. exit