v_del_sys_user 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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_FUNC/shared_func.sh
  11. source $V_FUNC/domain_func.sh
  12. source $V_FUNC/db_func.sh
  13. source $V_FUNC/ip_func.sh
  14. source $V_CONF/vesta.conf
  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 childs
  27. is_user_parent
  28. #----------------------------------------------------------#
  29. # Action #
  30. #----------------------------------------------------------#
  31. # Checking web system is enabled
  32. if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
  33. $V_BIN/v_unsuspend_web_domains $user
  34. $V_BIN/v_del_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. $V_BIN/v_unsuspend_dns_domains $user
  43. $V_BIN/v_del_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. $V_BIN/v_unsuspend_mail_domains $user
  52. $V_BIN/v_del_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. $V_BIN/v_unsuspend_db_bases $user
  61. $V_BIN/v_del_db_dbases $user
  62. rv="$?"
  63. if [ "$rv" -ne '0' ]; then
  64. exit $rv
  65. fi
  66. fi
  67. # Checking ip
  68. $V_BIN/v_del_sys_user_ips "$user"
  69. rv="$?"
  70. if [ "$rv" -ne '0' ]; then
  71. exit $rv
  72. fi
  73. # Deleteing user pipes
  74. diskp=$(grep -n " $user$" $V_QUEUE/disk.pipe|cut -d : -f 1|sort -n -r)
  75. trafp=$(grep -n " $user$" $V_QUEUE/traffic.pipe|cut -d : -f 1|sort -n -r)
  76. statp=$(grep -n "/$user/" $V_QUEUE/stats.pipe|cut -d : -f 1|sort -n -r)
  77. if [ ! -z "$diskp" ]; then
  78. for str in $diskp; do
  79. sed -i "$str d" $V_QUEUE/disk.pipe
  80. done
  81. fi
  82. if [ ! -z "$trafp" ]; then
  83. for str in $trafp; do
  84. sed -i "$str d" $V_QUEUE/traffic.pipe
  85. done
  86. fi
  87. if [ ! -z "$statp" ]; then
  88. for str in $statp; do
  89. sed -i "$str d" $V_QUEUE/stats.pipe
  90. done
  91. fi
  92. # Deleteing user from parent
  93. owner=$(get_user_value '$OWNER')
  94. if [ -e "$V_USERS/$owner/child.conf" ]; then
  95. childc=$(grep -n "USER='$user'" $V_USERS/$owner/child.conf |\
  96. cut -d : -f 1 | sort -n -r)
  97. fi
  98. if [ ! -z "$childc" ]; then
  99. for str in $childc; do
  100. sed -i "$str d" $V_USERS/$owner/child.conf
  101. done
  102. fi
  103. # Removing system user
  104. userdel -f $user
  105. rm -rf $V_HOME/$user
  106. rm -f /var/spool/mail/$user
  107. rm -f /var/spool/cron/$user
  108. rm -rf $V_USERS/$user
  109. #----------------------------------------------------------#
  110. # Vesta #
  111. #----------------------------------------------------------#
  112. # Logging
  113. log_event 'system' "$V_EVENT"
  114. exit $OK