|
| 1 | +#!/bin/bash |
| 2 | +# info: deliting system user |
| 3 | + |
| 4 | +#----------------------------------------------------------# |
| 5 | +# Variable&Function # |
| 6 | +#----------------------------------------------------------# |
| 7 | + |
| 8 | +# Argument defenition |
| 9 | +user="$1" |
| 10 | + |
| 11 | +# Importing variables |
| 12 | +source $VESTA/conf/vars.conf |
| 13 | +source $V_FUNC/shared_func.sh |
| 14 | +source $V_FUNC/domain_func.sh |
| 15 | +source $V_FUNC/db_func.sh |
| 16 | +source $V_FUNC/ip_func.sh |
| 17 | +source $V_CONF/vesta.conf |
| 18 | + |
| 19 | + |
| 20 | +#----------------------------------------------------------# |
| 21 | +# Verifications # |
| 22 | +#----------------------------------------------------------# |
| 23 | + |
| 24 | +# Checking arg number |
| 25 | +check_args '1' "$#" 'user' |
| 26 | + |
| 27 | +# Checking argument format |
| 28 | +format_validation 'user' |
| 29 | + |
| 30 | +# Checking user |
| 31 | +is_user_valid |
| 32 | + |
| 33 | +# Checking user is active |
| 34 | +is_user_suspended |
| 35 | + |
| 36 | +# Checking user childs |
| 37 | +is_user_parent |
| 38 | + |
| 39 | + |
| 40 | +#----------------------------------------------------------# |
| 41 | +# Action # |
| 42 | +#----------------------------------------------------------# |
| 43 | + |
| 44 | +# Checking web system is enabled |
| 45 | +if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then |
| 46 | + $V_BIN/v_unsuspend_web_domains $user |
| 47 | + $V_BIN/v_del_web_domains $user |
| 48 | + rv="$?" |
| 49 | + if [ "$rv" -ne '0' ]; then |
| 50 | + exit $rv |
| 51 | + fi |
| 52 | +fi |
| 53 | + |
| 54 | +# Checking dns system is enabled |
| 55 | +if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then |
| 56 | + $V_BIN/v_unsuspend_dns_domains $user |
| 57 | + $V_BIN/v_del_dns_domains $user |
| 58 | + rv="$?" |
| 59 | + if [ "$rv" -ne '0' ]; then |
| 60 | + exit $rv |
| 61 | + fi |
| 62 | +fi |
| 63 | + |
| 64 | +# Checking mail system is enabled |
| 65 | +if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then |
| 66 | + $V_BIN/v_unsuspend_mail_domains $user |
| 67 | + $V_BIN/v_del_mail_domains $user |
| 68 | + rv="$?" |
| 69 | + if [ "$rv" -ne '0' ]; then |
| 70 | + exit $rv |
| 71 | + fi |
| 72 | +fi |
| 73 | + |
| 74 | +# Checking db system is enabled |
| 75 | +if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then |
| 76 | + $V_BIN/v_unsuspend_db_bases $user |
| 77 | + $V_BIN/v_del_db_dbases $user |
| 78 | + rv="$?" |
| 79 | + if [ "$rv" -ne '0' ]; then |
| 80 | + exit $rv |
| 81 | + fi |
| 82 | +fi |
| 83 | + |
| 84 | +# Checking ip |
| 85 | +v_del_sys_user_ips "$user" |
| 86 | +rv="$?" |
| 87 | +if [ "$rv" -ne '0' ]; then |
| 88 | + exit $rv |
| 89 | +fi |
| 90 | + |
| 91 | +# Deleteing user pipes |
| 92 | +diskp=$(grep -n " $user$" $V_QUEUE/disk.pipe|cut -d : -f 1|sort -n -r) |
| 93 | +trafp=$(grep -n " $user$" $V_QUEUE/traffic.pipe|cut -d : -f 1|sort -n -r) |
| 94 | +statp=$(grep -n "/$user/" $V_QUEUE/stats.pipe|cut -d : -f 1|sort -n -r) |
| 95 | + |
| 96 | +if [ ! -z "$diskp" ]; then |
| 97 | + for str in $diskp; do |
| 98 | + sed -i "$str d" $V_QUEUE/disk.pipe |
| 99 | + done |
| 100 | +fi |
| 101 | + |
| 102 | +if [ ! -z "$trafp" ]; then |
| 103 | + for str in $trafp; do |
| 104 | + sed -i "$str d" $V_QUEUE/traffic.pipe |
| 105 | + done |
| 106 | +fi |
| 107 | + |
| 108 | +if [ ! -z "$statp" ]; then |
| 109 | + for str in $statp; do |
| 110 | + sed -i "$str d" $V_QUEUE/stats.pipe |
| 111 | + done |
| 112 | +fi |
| 113 | + |
| 114 | +# Removing system user |
| 115 | +userdel -f $user |
| 116 | +rm -rf $V_HOME/$user |
| 117 | +rm -f /var/spool/mail/$user |
| 118 | +rm -f /var/spool/cron/$user |
| 119 | +rm -rf $V_USERS/$user |
| 120 | + |
| 121 | + |
| 122 | +#----------------------------------------------------------# |
| 123 | +# Vesta # |
| 124 | +#----------------------------------------------------------# |
| 125 | + |
| 126 | +# Logging |
| 127 | +log_event 'system' "$V_EVENT" |
| 128 | + |
| 129 | +exit $OK |
0 commit comments